hjk@aptiva:~$ ssh-keygen -t dsa Generating public/private dsa key pair. Enter file in which to save the key (/home/hjk/.ssh/id_dsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/hjk/.ssh/id_dsa. Your public key has been saved in /home/hjk/.ssh/id_dsa.pub. The key fingerprint is: ab:25:4f:30:85:b3:89:a6:d9:0d:e5:9d:2c:00:11:42 hjk@aptiva/home/hjk/.ssh/ 以下に
hjk@aptiva:~/.ssh$ cat id_dsa.pub ssh-dss AAAAB3NzaC1kc3MAAACBAJmvxJ4yML0cbn0g5hBbPEkW6AsWOsTvCwiz3SJ1+7e/K6gsntb N2RPKT7P3aEWObNyh9rxb8pVt9iVOhxzncmHRmZTvQoRUZxCrV2P2KyhfknIhKaH0RxXDJUnQSnIf10 EedYxSQvO7hxRIw5Zkt8mPp0qYpUpQ4xYLy8sKqrVzAAAAFQCXjfnVtXvctXS3GLWOuT/uoEDqewAAA IAPoiUMlTEbvC/qS+ZUScrU6bADmjKIAAoO2ZaRqebg5ScGBumrZr3ZhBgxjaqfsnlhHiyOpdXtQyCA owxmfr52/rRijuT0Oe5KoApxb3Ce53P2F7SVC3XL3Oy0g0IEoIDr+maoe52b43rCiTVixb+JyjADjWU AeIJHzYbfmYceXQAAAIBf/k2BN5dAm2Pneuz+SrHZCDIDzZZPXZkAutABu5vVD/k6HZkd4sdo+k7cgX aKO9FIFVsucOyq6S38R9IPmKxm4vdur0acpdL9ep88j2FbjlwAJt++yaAGFRkl+NjZQbb4aq2RK7omD msqkvL52vaCou72vfHSnPGjAWue/ggcfg== hjk@aptiva (実際は1行)
(初めて共通鍵認証でログインするとき) hjk@aptiva:~$ ssh -l hujioka 192.168.0.129 The authenticity of host '192.168.0.129 (192.168.0.129)' can't be established. RSA key fingerprint is d4:38:80:d8:08:3c:57:22:55:ab:b5:6a:c7:ff:ec:3f. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.0.129' (RSA) to the list of known hosts. hujioka@192.168.0.129's password: (2度目から共通鍵認証でログインするとき) hjk@aptiva:~$ ssh -l hujioka 192.168.0.129 hujioka@192.168.0.129's password: <=パスフレーズではなくパスワードが求められる Linux bco 2.4.20 #1 Wed Mar 12 15:51:17 JST 2003 i686 GNU/Linux The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Fri Dec 10 18:05:52 2004 from client45.picure.l.u-tokyo.ac.jp hujioka@bco:~$~/に
hujioka@bco:~$ mkdir .ssh hujioka@bco:~$ chmod 700 .ssh hujioka@bco:~$ touch .ssh/authorized_keys hujioka@bco:~$ chmod 644 authorized_keysしておく。
ターミナルB上で、以下のようなコマンド(途中は左クリックで上の id_rsa.pub をコピペ)を実行。
hujioka@bco:~$ echo 'ssh-dss AAAAB3NzaC1kc3MAAACBAJmvx J4yML0cbn0g5hBbPEkW6AsWOsTvCwiz3SJ1+7e/K6gsntbN2RPKT7P3aEWObNyh9rxb8pVt9iVOhxzn cmHRmZTvQoRUZxCrV2P2KyhfknIhKaH0RxXDJUnQSnIf10EedYxSQvO7hxRIw5Zkt8mPp0qYpUpQ4xY Ly8sKqrVzAAAAFQCXjfnVtXvctXS3GLWOuT/uoEDqewAAAIAPoiUMlTEbvC/qS+ZUScrU6bADmjKIAA oO2ZaRqebg5ScGBumrZr3ZhBgxjaqfsnlhHiyOpdXtQyCAowxmfr52/rRijuT0Oe5KoApxb3Ce53P2F 7SVC3XL3Oy0g0IEoIDr+maoe52b43rCiTVixb+JyjADjWUAeIJHzYbfmYceXQAAAIBf/k2BN5dAm2Pn euz+SrHZCDIDzZZPXZkAutABu5vVD/k6HZkd4sdo+k7cgXaKO9FIFVsucOyq6S38R9IPmKxm4vdur0a cpdL9ep88j2FbjlwAJt++yaAGFRkl+NjZQbb4aq2RK7omDmsqkvL52vaCou72vfHSnPGjAWue/ggcfg == hjk@aptiva' >> .ssh/authorized_keys 黒字は id_dsa_pub のコピペ。 赤字はコマンド2台以上のマシンのdsaキーを登録するときも同様。
hujioka@bco:~/.ssh$ cat authorized_keys ssh-dss AAAAB3NzaC1kc3MAAACBAJmvxJ4yML0cbn0g5hBbPEkW6AsWOsTvCwiz3SJ1+7e/K6gsntb N2RPKT7P3aEWObNyh9rxb8pVt9iVOhxzncmHRmZTvQoRUZxCrV2P2KyhfknIhKaH0RxXDJUnQSnIf10 EedYxSQvO7hxRIw5Zkt8mPp0qYpUpQ4xYLy8sKqrVzAAAAFQCXjfnVtXvctXS3GLWOuT/uoEDqewAAA IAPoiUMlTEbvC/qS+ZUScrU6bADmjKIAAoO2ZaRqebg5ScGBumrZr3ZhBgxjaqfsnlhHiyOpdXtQyCA owxmfr52/rRijuT0Oe5KoApxb3Ce53P2F7SVC3XL3Oy0g0IEoIDr+maoe52b43rCiTVixb+JyjADjWU AeIJHzYbfmYceXQAAAIBf/k2BN5dAm2Pneuz+SrHZCDIDzZZPXZkAutABu5vVD/k6HZkd4sdo+k7cgX aKO9FIFVsucOyq6S38R9IPmKxm4vdur0acpdL9ep88j2FbjlwAJt++yaAGFRkl+NjZQbb4aq2RK7omD msqkvL52vaCou72vfHSnPGjAWue/ggcfg== hjk@aptiva sh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAvUmsokfi1bw0+QfUt90N6zb no2D+Fu1fASs29pS44OMeLa67TcFXFY+sg2loa8BOUSRJcVY7oz+uoPbNYBQOHCBk438EwXlsUnc16H uBN02PlN6DC/mYUqiC2/Us84jmcs7YjKhgIXIJ9CQl3xwUZ2fPS/qjydpKTjLGJGdnl8s= hjk@hoge オレンジ色は2度目に
実際に流れる情報は、例えばつぎのようなものだ。
途中、パスワードではなく、パスフレーズが求められている点に注意。
こうなっていれば、共通鍵方式ではなく、公開・秘密鍵(dsa方式)で
ログインできるようになったことがわかる。
hjk@aptiva:~$ ssh -v hujioka@192.168.0.129 OpenSSH_3.8.1p1 Debian-8.sarge.4, OpenSSL 0.9.7e 25 Oct 2004 debug1: Reading configuration data /etc/ssh/ssh_config debug1: Connecting to 192.168.0.129 [192.168.0.129] port 22. debug1: Connection established. debug1: identity file /home/hjk/.ssh/identity type -1 debug1: identity file /home/hjk/.ssh/id_rsa type -1 debug1: identity file /home/hjk/.ssh/id_dsa type 2 debug1: Remote protocol version 1.99, remote software version OpenSSH_3.6.1p2 Debian 1:3.6.1p2-9 debug1: match: OpenSSH_3.6.1p2 Debian 1:3.6.1p2-9 pat OpenSSH* debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-2.0-OpenSSH_3.8.1p1 Debian-8.sarge.4 debug1: SSH2_MSG_KEXINIT sent debug1: SSH2_MSG_KEXINIT received debug1: kex: server->client aes128-cbc hmac-md5 none debug1: kex: client->server aes128-cbc hmac-md5 none debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP debug1: SSH2_MSG_KEX_DH_GEX_INIT sent debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY debug1: Host '192.168.0.129' is known and matches the RSA host key. debug1: Found key in /home/hjk/.ssh/known_hosts:1 debug1: ssh_rsa_verify: signature correct debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug1: SSH2_MSG_NEWKEYS received debug1: SSH2_MSG_SERVICE_REQUEST sent debug1: SSH2_MSG_SERVICE_ACCEPT received debug1: Authentications that can continue: publickey,password,keyboard-interactive debug1: Next authentication method: publickey debug1: Trying private key: /home/hjk/.ssh/identity debug1: Trying private key: /home/hjk/.ssh/id_rsa debug1: Offering public key: /home/hjk/.ssh/id_dsa debug1: Server accepts key: pkalg ssh-dss blen 433 debug1: PEM_read_PrivateKey failed debug1: read PEM private key done: typeEnter passphrase for key '/home/hjk/.ssh/id_dsa': debug1: read PEM private key done: type DSA debug1: Authentication succeeded (publickey). debug1: channel 0: new [client-session] debug1: Entering interactive session. Linux bco 2.4.20 #1 Wed Mar 12 15:51:17 JST 2003 i686 GNU/Linux The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Tue Dec 14 15:48:27 2004 from client45.picure.l.u-tokyo.ac.jp hujioka@bco:~$
そこで、一時的にローカルマシン(接続元)にパスフレーズを保存しておき、 起動時に一度パスフレーズを登録しておけば、以後はパスフレーズを 省略して、リモートマシン(接続先)に接続できるようにする。
手順としては、
重要な参考資料は以下を参照。
hjk@s30:~$ eval `ssh-agent`
hjk@s30:~$ ssh-add Enter passphrase for /home/hjk/.ssh/id_rsa: ←rsaキーは作っていないので、ここは「空のまま Enter」 Enter passphrase for /home/hjk/.ssh/id_dsa: ←dsaキーを入れる Identity added: /home/hjk/.ssh/id_dsa (/home/hjk/.ssh/id_dsa) Identity added: /home/hjk/.ssh/identity (hjk@s30)