openstackのkey-pairをAuthorizedKeysCommandに利用する
どもっす。
夏休み2日目のP山です。
以前LDAP周りのログイン調べてた時にうっかり気づいた、sshd_config
のAuthorizedKeysCommand
で
openstackのkey-pair(ユーザーに紐づくssh公開鍵)をそのまま使えたら便利じゃないのかということで
goで書いてみました。
使い方
まず/etc/ssh/openstack-ssh.conf
を作成してください。
auth_url = "http://your-api-host:35357/v2.0"
user = "your name"
password = "your password"
tenant = "your tenant"
region = "your region"(default regionOne)
あとは/etc/ssh/sshd_config
に下記を追加
RSAAuthentication no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
AuthorizedKeysCommand /path/to/openstack-ssh
AuthorizedKeysCommandUser nobody
ChallengeResponseAuthentication no
PasswordAuthentication no
PermitRootLogin no
ここまで設定を入れたら、あとはnova
にkey-pairを登録すればSSHログインできるようになります。
$ nova keypair-add --pub-key ~/.ssh/github_rsa.pub pyama
$ ssh 192.168.70.11 -l pyama
Last login: Sun Aug 9 08:23:57 2015 from 192.168.70.1
[pyama@client ~]$
利用シーンとか
前提としてログインされるサーバ上にユーザーが存在することが必要になるため
sudo権限の管理とかグループ管理のことも考えるとldapと合わせて使うのが良さそうです。
LDAPのお手軽導入は以前エントリにまとめています。
黒川温泉産のLDAPサーバでSSH公開鍵認証する
参考にさせてもらったところ
始めてGo書いたので配布周りは@deeeetさんのリポジトリや、ブログが非常に参考になりました。
例外処理とかもうちょっと綺麗に書ける気がするので勉強します。
それでは皆様よい夏休みを!