クライアント側で鍵ペアを作成し、公開鍵をサーバに登録すれば、ログイン時にパスワードが不要になる。
毎度パスワードを入力する必要が無いため、安全面でのメリットも。
鍵ペア作成
クライアントがLinux/Macの場合
クライアント側で、DSA鍵を作成する。実行後、~/.ssh配下に秘密鍵(id_dsa)と公開鍵(id_dsa.pub)が作成される。
$ ssh-keygen
Generating public/private dsa key pair.
Enter file in which to save the key (/home/foo/.ssh/id_dsa): <- Enter
Created directory '/home/foo/.ssh'.
Enter passphrase (empty for no passphrase): <- Enter(パスフレーズなし)
Enter same passphrase again: <- Enter(パスフレーズなし)
Your identification has been saved in /home/foo/.ssh/id_dsa.
Your public key has been saved in /home/foo/.ssh/id_dsa.pub.
The key fingerprint is:
24:5a:b7:0b:4f:be:3a:e7:95:46:bd:54:23:04:20:55 foo@client
The key's randomart image is:
+--[ DSA 1024]----+
| ..ooE.. |
| . . |
| o o . o |
| o + . . o . |
| . . S . o |
| = o o . |
| + + . |
| . .+ |
| .=o |
+-----------------+
クライアントがWindowsの場合
Gitをインストールすると、ssh-keygenのexeがあるのでそれを利用して、鍵を作る。
ssh-keygenにパスを通しておくこと。
以下、Git bash を利用。
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (//.ssh/id_rsa): /c/Users/XXXXX/.ssh/id_rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in c:/Users/XXXXX/.ssh/id_rsa.
Your public key has been saved in c:/Users/XXXXX/.ssh/id_rsa.pub.
The key fingerprint is:
48:--:--:--:0b:bf:0a:fd:ff:--:--:--:--:--:--:-- XXXXX@YOUR SERVER NAME
The key's randomart image is:
+--[ RSA 2048]----+
| 略 |
+-----------------+
サーバへの登録
クライアントがLinux/Macの場合
ssh-copy-id コマンドが使える端末(大抵のLinux)なら、以下のようにするだけでOK。-p はポートフォワード等のケースで必要。
client$ ssh-copy-id -i ~/.ssh/id_dsa.pub -p 2205 user@server
Macの場合、適当なLinuxマシンからssh-copy-idをコピーしてくると動く。
hogelinux$ which ssh-copy-id
hogelinux$ scp {ssh-copy-idパス} user@mac:~/
mac$ mv ~/ssh-copy-id /usr/local/bin
クライアントがWindowsの場合
ssh-copy-id みたいな便利なやつが無いのでめんどくさい。
SSHクライアントからコピーした公開鍵を~/.ssh/authorized_keysに追加する。またauthorized_keysのパーミッションは600に変更する。
以下、WinSCP等で公開鍵をサーバのユーザホームにコピーしている前提。
server% mkdir .ssh
server% chmod 700 .ssh
server% cd .ssh
server% cat ~/id_dsa.pub >> authorized_keys
server% chmod 600 authorized_keys
server% rm ~/id_dsa.pub
参考サイト
"SSHサーバにパスワードなしでログインする方法":http://l-w-i.net/t/openssh/login_001.txt
"ssh-copy-idをmacで使う方法":http://qiita.com/narumi888/items/420cd97032500808af54