科学の箱

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

Outlookのデスクトップ通知の場所を変更する

整理ハックでIME言語バーを画面の上に置くというアイデアがあった。自分はslickrunというコマンドツールを使っているがこれと、IMEを画面に上に置いたらずいぶんすっきりした。今まではタスクバーの邪 …

no image

sshでパスワードなしでログインする手順

sshでは公開鍵を設定することでパスワードなしでのサーバーログインが可能になる。この手順についてまとめておく。 サーバー側で利用するsshのバージョンを確認する。今回はVersion 2のみを利用する …

no image

PGP WDE Tools with Windows PE 2.0

Symantecの公式ページ http://www.symantec.com/business/support/index?page=content&id=TECH149634 http:// …

no image

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

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

no image

chefでnot_ifを利用するときのコマンドの戻り値を確認する

Chefでrbenv環境を構築する際に.bash_profileを書き換える。この時にすでに命令が入っていれば書き換えをしたくない。 この動作はnot_if句を導入することで可能だけど、コマンドの戻り …

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

side bar top



アーカイブ

カテゴリー