sshで秘密キーでログインする。

1 : ローカルマシンで公開鍵を作成します。


talisker:~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/talisker/.ssh/id_rsa): (Press Enter Key)
Enter passphrase (empty for no passphrase): (秘密のフレーズ)
Enter same passphrase again: (秘密のフレーズ)
これで公開鍵が作成されました。

2 : 作成された公開鍵を確認します。


talisker:~$ ll ~/.ssh/
合計 20
drwx------ 2 talisker talisker 4096 6月 17 21:12 ./
drwxr-xr-x 48 talisker talisker 4096 6月 17 12:41 ../
rw------- 1 talisker talisker 1766 6月 17 21:10 id_rsa
rw-r--r-- 1 talisker talisker 399 6月 17 21:10 id_rsa.pub
rw-r--r-- 1 talisker talisker 2210 6月 17 20:57 known_hosts
id_rsa.pubがありました。OKですね。

3 : 公開鍵をサーバーにコピーします。


talisker:~$ scp -r ~/.ssh/ talisker@サーバーマシンのIP.com:~/
talisker@サーバーマシンのIP.com's password:
id_rsa.pub 100% 399 0.4KB/s 00:00
id_rsa 100% 1766 1.7KB/s 00:00
known_hosts 100% 2210 2.2KB/s 00:00
scpコマンドが手軽です。

4 : サーバーにログインしてアレコレ設定してやります。


// scpで送られているか確認。
[talisker@ServerMachine ~]$ cd .ssh/
[talisker@ServerMachine .ssh]$ ls
id_rsa id_rsa.pub known_hosts

// id_rsa.pub以外は消す。
[talisker@ServerMachine .ssh]$ rm -rf known_hosts
[talisker@ServerMachine .ssh]$ rm -rf id_rsa
[talisker@ServerMachine .ssh]$ ls
id_rsa.pub

// 名前を変更する。
[talisker@ServerMachine .ssh]$ mv id_rsa.pub authorized_keys
[talisker@ServerMachine .ssh]$ ls
authorized_keys

// 所有権の変更。
[talisker@ServerMachine .ssh]$ chmod 600 authorized_keys

// 確認。
[talisker@ServerMachine .ssh]$ ll
合計 4
rw------- 1 talisker talisker 399 6月 17 21:17 2012 authorized_keys

// sshdの設定を変更する。
[talisker@ServerMachine .ssh]$ sudo vi /etc/ssh/sshd_config
//以下の様に設定します。
PermitRootLogin no
PasswordAuthentication no
AuthorizedKeysFile .ssh/authorized_keys

// sshdをリスタートして設定を反映させます。
[talisker@ServerMachine .ssh]$ sudo /etc/rc.d/init.d/sshd restart
sshd を停止中: [ OK ]
sshd を起動中: [ OK ]

// ログアウトします。
[talisker@ServerMachine .ssh]$ exit

sshd_configの詳しい設定は下記を参照されたし。
http://www.unixuser.org/~euske/doc/openssh/jman/sshd_config.html
5 : 接続して確認します。

// rootでログイン
talisker@talisker:~$ ssh root@サーバーマシンのIP.com
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

// 鍵を持っていない別のマシンから接続
[caolila@dns ~]$ ssh talisker@サーバーマシンのIP.com
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

// 鍵をコピーして別のマシンから接続
[caolila@dns .ssh]$ ssh -i ~/.ssh/id_rsa talisker@サーバーマシンのIP.com
Enter passphrase for key '/home/caolila//.ssh/id_rsa': (秘密のフレーズを入力)

以上です。