ssh RSA公開鍵認証
Rev.12を表示中。最新版はこちら。
sshdの設定
RSA認証を行うようにsshdの設定ファイル(/etc/ssh/sshd_config)を編集する。
◎RSA認証の許可(デフォルトのコメントアウトされた状態でもいいみたい)
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
◎パスワード認証の禁止。
<略> PasswordAuthentication no <略>
◎他の認証方式も一応禁止されていることを確認。
RhostsAuthentication no RhostsRSAAuthentication no
編集が終わったらsshdを再起動する。
# /etc/init.d/sshd restart
鍵の作成
ここでは ssh v1の鍵を作成する。# ssh-keygen -t rsa1 Generating public/private rsa1 key pair. Enter file in which to save the key (/home/tomita/.ssh/identity): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/tomita/.ssh/identity. Your public key has been saved in /home/tomita/.ssh/identity.pub. The key fingerprint is: 69:6d:4d:78:84:fd:13:3c:8d:41:a3:98:4e:a1:8f:85 tomita@xxxxxx.com #
以下のファイルが作成される。
秘密鍵 ~/.ssh/identity
公開鍵 ~/.ssh/identity.pub
identity.pubの内容をリモートホスト(ログイン先)の~/.ssh/authorized_keysに登録する。初回作成の場合はパーミッションを644に設定しておく(余計にパーミッションが空いていると接続できない)。
# cat identity.pub >> ~/.ssh/authorized_keys # chmod 644 authorized_keys
後は、以下のようにログインできる。パスフレーズには鍵を作成した時に指定したものを入力する。
# ssh 10.0.0.1 Enter passphrase for RSA key '/home/tomita/.ssh/identity': Last login: Thu Apr 6 15:49:18 2006 from 10.0.0.2 #
sshでログインする場合は、ログイン元のPCには秘密鍵(identityファイル)が必要になる。identityファイルは他人に見られてはいけないので、他のPCにコピーする場合は暗号化した通信経路でコピーするなり、フロッピーなどでコピーするなど取扱いに気をつける必要がある。
パスフレーズ入力の省略
毎回パスフレーズの入力するのが嫌な場合は、パスフレーズをssh-addコマンドでデーモン(ssh-agent)に記憶させておくとよい。ログイン後、ssh-agentを起動して、ssh-addでパスフレーズを記憶させてしまえば、接続時にパスフレーズを聞かれなくなる。
# eval `ssh-agent` Agent pid 30763 # ssh-add Enter passphrase for OpenSSH public key for xxxxx user: Identity added: /home/tomita/.ssh/identity (OpenSSH public key for xxxxx user) #
Fedoraではメニューから[デスクトップ] → [個人設定] → [他の個人設定] → [セッション]を実行して「自動起動するプログラム」にeval `ssh-agent`を入れておくとログイン後、いちいちssh-agentを手動で実行しなくてよいので便利。
ssh-agentの停止
起動したssh-agentはログアウト時に停止させた方がよい。
eval `ssh-agent -k`
.bash_logoutあたりにeval `ssh-agent -k`を入れておくとよい。