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

参考文献