科学の箱

科学・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

さくらVPS – 初期設定

こちらを参考にして初期設定と基本アプリケーションを導入 yumの初期設定 yum -y update yum -y install yum-cron /etc/rc.d/init.d/yum-cron …

no image

RemoteAppをXP, 2003で使う際に便利なツール

RemoteAppを2008以前の古いOSで実行する場合には2つの作業が必要になる。 RDP Clientの更新 レジストリでremoteで実行するアプリケーションの登録 RDP Clientの更新は …

no image

Windowsログオン認証についてのメモ

エンドユーザーからWindowsログオン認証について質問を受けた。具体的な質問は自社のWindows Active Directory環境で有効になっている認証の種類を知りたいということだ。Windo …

no image

gitの使い方

git init git add \*.java git status -s or git status git commit -m “initial commit” git …

no image

Printer MIBのメモ

エラーコードの取得 # snmpwalk -v1  -c public nn.nn.nn.nn .1.3.6.1.2.1.25.3.5 HOST-RESOURCES-MIB::hrPrinterSta …

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

side bar top



アーカイブ

カテゴリー