ssh/ssh-agent
ネタ元
- 作者: 大津真,向井領治,まえだひさこ
- 出版社/メーカー: 毎日コミュニケーションズ
- 発売日: 2005/10
- メディア: 単行本
- この商品を含むブログ (4件) を見る
sshd はデフォルトではパスワード認証を行うように設定されている.万が一パスワードが他人にばれれば,そいつは自分に代わって悪戯し放題ってことだ.より硬い認証方式として公開鍵認証を使おう.
鍵の生成と登録
鍵ペア(RSA : SSHv2用)を生成する.
mgmt$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/username/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/username/.ssh/id_rsa. Your public key has been saved in /home/username/.ssh/id_rsa.pub. The key fingerprint is: bb:90:24:c6:d3:cc:97:63:fa:64:86:1d:0a:e7:32:4d username@mgmt
ホームディレクトリの下に秘密鍵(id_rsa)と公開鍵(id_rsa_pub)ができている.
mgmt$ ls -al .ssh total 20 drwx------ 2 username username 4096 May 5 15:04 . drwxr-xr-x 18 username username 4096 May 5 14:49 .. -rw------- 1 username username 951 May 5 15:04 id_rsa -rw-r--r-- 1 username username 227 May 5 15:04 id_rsa.pub -rw-r--r-- 1 username username 3009 May 5 14:54 known_hosts
秘密鍵はここでがっちり死守する.公開鍵はログイン先のサーバへ登録しておく.scp か何かでログイン先へ送信して,
sv-bsd$ cat id_rsa.pub >> .ssh/authorized_keys
登録しておく.
sshdの設定変更
公開鍵認証をするのであれば,パスワード認証は止めてしまおう.sshd_config の "PasswordAuthentication" を "no" に設定して sshd を reload する.
ssh-agent
さて,公開鍵を登録して認証を行うことにしたのでこれまでのようにパスワードをサーバへ送る必要はなくなった.ところが,このままだと秘密鍵を開くために毎回 passphrase を入力しなければいけないのだ. passphrase はネットワークを流れないのでセキュリティ的には良くなっているのだが,結局キーワードを入力する手間は変わらず.ということで ssh-agent を使う.ssh-agent は passphrase をメモリに置いて管理するので,最初の1回だけ passphrase を入力すれば後は ssh-agent が勝手にそれを使いまわしてくれる.
起動(使用するシェルを引数として渡す)
mgmt$ ssh-agent $SHELL
起動確認.環境変数等が設定される.
mgmt$ echo $SSH_AGENT_PID 4672 mgmt$ echo $SSH_AUTH_SOCK /tmp/ssh-GTMMsJ4049/agent.4049 mgmt$ ps aux | grep ssh-agent 501 4672 0.0 0.2 3900 1136 ? Ss 15:12 0:00 ssh-agent /bin/bash 501 4697 0.0 0.0 1676 488 pts/1 R+ 15:13 0:00 grep ssh-agent
秘密鍵の登録.とりあえず手持ちの鍵を全部登録してしまおう.
mgmt$ ssh-add Enter passphrase for /home/username/.ssh/id_rsa: Identity added: /home/username/.ssh/id_rsa (/home/username/.ssh/id_rsa)
ここの 1 回だけ passphrase を入力するだけでよい.ssh-agent に登録した秘密鍵に対応する公開鍵を登録したサーバには,以後 passphrase の入力なしに ssh で潜ることができる.