連載 :
VPSサービスを複数台構成で使う複数サーバー間でSSH鍵を交換する
2011年7月7日(木)
SSH鍵認証の概要
それでは連携するサーバー間で実際にSSH鍵を交換してみましょう。
今回、他のサーバーにログインしようとするサーバーを「host1」、ログインされるサーバーを「host2」、対象ユーザーを「user」とします。
また各サーバーにて/etc/hostsファイルがそれぞれ以下の要領で記載されていると仮定します。
10.0.0.101 host1 10.0.0.102 host2
それからhost2で以下についても実行しておいてください。
$ mkdir -m 700 /home/user/.ssh
host1側の作業
まずは秘密鍵と公開鍵を生成します。
$ su - user $ ssh-keygen -t rsa (以下設問には取りあえず全てEnterしてください)
すると、秘密鍵(id_rsa)と公開鍵(id.rsa.pub)が生成されるので、「host2」に公開鍵(id_rsa.pub)だけをコピーします。
$ scp /home/user/.ssh/id_rsa.pub user@host2:/home/user/.ssh/id_rsa.pub_host1 user@host2's password: xxxxxxxx
host2側の作業
host1からコピーされてきた公開鍵を「authorized_keys」というファイルに追加します。
$ su - user $ cd .ssh $ cat id_rsa.pub_host1 >> authorized_keys $ chmod 600 authorized_keys
すると、host1からhost2にパスワードなしでSSH接続できるようになります。
[user@host1 ~] $ ssh host2 Last login: Sat Oct 23 00:42:19 2010 from host1 [user@host2 ~] $
図2:鍵の配置 |
ただ、上記のような設定方法は大変手間がかかるため、連携するサーバー台数が増えれば増えるほどいちいち手作業で設定していくのが困難になります。そういった場合は「host1」上で以下の手順を行うことで、公開鍵を配布していくことも可能です。
$ ssh user@host2 "echo 'ssh-rsa ABCDB3NzaC5yc2EAAAABIwAAAIEA0AIDjalANyx09R5Ko WCBRheartsNMNmli95CBQ1eBhzZGEQRdHqyS4I9v/5qgKMsrgruhNMBlGUUrop19ALwodHB852vWvAZ G3gReu2c3CbP9qGlA0mTG7nYUCWU0ggFwq1b+HAA5wF/BqkSvWXlTe+9G0/8nmgqZMzKr81fL2u8 = user@host1' >> /home/user/.ssh/authorized_keys" user@host2's password: xxxxxxxx $ ssh user@host2 "chmod 600 /home/user/.ssh/authorized_keys" user@host2's password: xxxxxxxx
連載バックナンバー
Think ITメルマガ会員登録受付中
Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。