科学の箱

科学・IT・登山の話題

IT

chefでssh公開鍵でログインできるようにする

投稿日:

knife soloをパスワードなしに利用するためには以下の条件を満たすユーザーが必要になる

  • sshで公開鍵でログインできる
  • 秘密鍵にはパスフレーズがついていない
  • sudoがパスワードなしでできる

最初に鍵を作るところは自分でやるとして、その後は鍵をchef経由でサーバーに設定して、sudoも編集できるようにしておけばchefを利用してその後は簡単にサーバーセットアップができる。

この辺の処理をしてれくれるレシピを探してみた。

公開鍵の設定についてはopscodeでuserというクックブックが提供されているようだ。

berks経由でのこのクックブックを読み込む。まずはBerksfileを編集する。

source "https://supermarket.getchef.com"

cookbook 'yum-epel'
cookbook 'apache2'
cookbook 'mysql'
cookbook 'user'

クックブックをダウンロードする

berks install

このcookbookでは新しい属性のみ利用できるようになっている。使い方としては以下の手順になる。

  • クックブック作成
  • 新しい属性を設定したrecipeを作成
  • run_listにuserと新しいクックブックを設定する

ではクックブックを作成する

knife cookbook create ssh_user -o site-cookbooks

recipeを編集する

user_account 'yamada' do
    action :create
        ssh_keys   ['ssh-rsa AAAA    ']
end

ポイントは user_accountリソースでssh_keys属性を設定する。chefのオリジナルのuserリソースではuser_accountリソースは利用できない。しかしuserクックブックを利用することで、このリソースが利用できるようになり、追加の属性が設定できる。そのうちの一つが ssh_keysになる。

このssh_keysにはあらかじめ作成しておいた公開鍵を設定する。上のレシピではユーザーyamadaが作成され、公開鍵とリンクする。

次にノードを編集する

{
  "run_list": [
    "recipe[user]",
    "recipe[ssh_user]"
  ],
  "automatic": {
    "ipaddress": "192.168.1.1"
  }
}

ノードではuserレシピ、ssh_userレシピの順番に実行する。

kinife soloを実行する。以下のようなメッセージがでる。

Starting Chef Client, version 11.16.2
Compiling Cookbooks...
Converging 1 resources
Recipe: ssh_user::default
  * user_account[yamada] action create
    * user[yamada] action create
      - create user yamada
    * directory[/home/yamada/.ssh] action create
      - create new directory /home/yamada/.ssh
      - change mode from '' to '0700'
      - change owner from '' to 'yamada'
      - change group from '' to '502'
      - restore selinux security context
    * directory[/home/yamada] action create
      - change mode from '0700' to '02755'
      - restore selinux security context
    * template[/home/yamada/.ssh/authorized_keys] action create
      - create new file /home/yamada/.ssh/authorized_keys
      - update content in file /home/yamada/.ssh/authorized_keys from none to 5fbc78
      --- /home/yamada/.ssh/authorized_keys     2014-09-25 10:05:59.707530608 +0
|
|
|

.sshフォルダの作成、authorized_keysの作成、パーミッションの設定などすべて実行してくれる。

公開鍵でログインできるか確認する。

$ ssh yamada@192.168.1.1 -i .\.ssh\id_rsa
cygwin warning:
  MS-DOS style path detected: .\.ssh\id_rsa
[yamada@localhost ~]$

メタ情報

inarticle



メタ情報

inarticle



-IT
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

Terminal Server License

Networkerを構成しているバックアップサーバーにRDP経由でログインして作業をしようとしたところ、下記のエラーが出た。 RDP CALは管理用に2ライセンスは有効になっているはずであり、ライセン …

no image

RemoteFPingの設定

SmokePingで拠点間のping情報を集約する方法は2通りある。一つはslaveモードを使う方法。もう一つはRemoteFPingを使う。 Slaveは以前設定をしたことがある。不都合としては3点 …

no image

zabbixでsmtpをactionで利用する際の注意点

zabbixではトリガーイベントが発生した際にアクションとしてsmtpメールを送信してユーザーに連絡をすることができる。このときネットワークの設定が不完全だとエラーになる。 OS側でネットワークの障害 …

no image

Commvault ジョブプライオリティの設定

Commvaultでリストアを実施したが1Mbyte程度でもまったく終わらない。確認してみたところ並列でジョブが複数流れていることを確認。   ジョブのプライオリティが変えられるのではないか …

no image

shの-lオプション

manからの説明 -l               Make dash act as if it had been invoked as a login shell. Related posts:dh …

2014年9月
« 8月   10月 »
1234567
891011121314
15161718192021
22232425262728
2930  

side bar top



アーカイブ

カテゴリー