ssh-keygen
ssh-keygenとは
認証用に鍵と鍵穴を生成する.鍵=秘密鍵をローカルのMacにおいて,鍵穴=公開鍵をサーバーのlinuxに置くイメージ.
sshのときに,パスワードやIPの入力を省略できます.
複数の鍵を使い分ける方法もあわせて.
使い方
accountは各自のアカウント名に,192.168.1.1は各自のサーバーのIPアドレスに,host1はサーバーのホストネームまたはわかりやすい名前変えてください.
1. 初めて使う場合.
ローカルのMacで
% ssh-keygen -b 2048 -t rsa
色々聞かれますが,必要なければエンター連打.
% cd .ssh
% mv id_rsa.pub authorized_keys
% chmod 600 authorized_keys
% rsync -auv authorized_keys account1@192.168.1.1:~/.ssh/
.ssh/configというファイルに以下を書いておくと,パスワードだけでなくIPなしでログインできます.
Host host1
Hostname 192.168.1.1
Protocol 2
User account1
% ssh host1
のように.
2. 別のMacから同じサーバーへ接続する場合.
2台目のMacで
% ssh-keygen -b 2048 -t rsa
色々聞かれますが,必要なければエンター連打.
% cd .ssh
% rsync -auv id_rsa.pub account1@192.168.1.1:~/.ssh/
続いて,サーバーへログインして
% cd .ssh
% cat id_rsa.pub >> authorized_keys
上と同様の.ssh/configをおいておくことで同じようにできます.
3. すでに鍵を持っているMacから別のサーバーに繋ぐ場合
host1への鍵に加えてhost2への鍵を追加します.
すでにある鍵の名前を変えてから新しい鍵を追加します.
% cd ~/.ssh
% mv id_rsa id_rsa.host1
% ssh-keygen -b 2048 -t rsa
色々聞かれますが,必要なければエンター連打.
% mv id_rsa id_rsa.host2
host2への鍵認証が初めてであれば
1. 初めて使う場合と同様に.
すでに鍵があれば
2. 別のMacから同じサーバーへ接続する場合と同様に.
使い分けるために,.ssh/configを編集します.
Host host1
Hostname 192.168.1.1
Protocol 2
User account1
Identityfile id_rsa.host1
Host host2
Hostname 192.168.1.2
Protocol 2
User account2
Identityfile id_rsa.host2
注意点
サーバーの.ssh/のpermissionは700にして,他者から書き込めないようにします.
chmod 700 ~/.ssh
参考文献