※最近はDSAよりもRSAが推奨されます。
 注)
 文中において
 local⇒接続元端末
 remote⇒接続先端末
 公開鍵と秘密鍵を使えば可能。
 まず、SSHがV1とV2のどちらなのかを確認
local$ ssh -V
V2に対応しているなら
local$ cd ~ local$ mkdir .ssh local$ chmod 700 .ssh local$ ssh-keygen -t dsa Generating public/private dsa key pair. Enter file in which to save the key (/home/hoge/.ssh/id_dsa): [Enter] Enter passphrase (empty for no passphrase) [Enter] Enter same passphrase again: [Enter] The key fingerprint is: Your identification has been saved in /home/hoge/.ssh/id_dsa Your public key has been saved in /home/hoge/.ssh/id_dsa.pub 00:00:00:00:00:00:00:00:00:00:00:00:00:00 hoge@localservername ↑パスフレーズを設定しないならEnter連打で良し。
で、DSA公開鍵と秘密鍵を生成。
 次にリモートサーバに公開鍵を転送
local$ scp ~/.ssh/id_dsa.pub hoge@remote_addr:/home/hoge
ここで、一旦リモートサーバにログインし、
 公開鍵の登録を行う。
local$ ssh hoge@remote_addr remote$ mkdir .ssh remote$ chmod 700 .ssh/ remote$ cd .ssh/ remote$ touch authorized_keys ←authorized_keys2は非推奨なので使わないこと remote$ chmod 600 authorized_keys remote$ cat ~/id_dsa.pub >>authorized_keys
登録により、不要となった公開鍵を削除
remote$ rm ~/id_dsa.pub local$ rm ~/.ssh/id_dsa.pub ←消してもいいが、他のホストへの再登録を考えると残しておくのが無難。 なお、local$ ~/.ssh/id_dsa は消してしまうと自動認証できなくなるので、消しちゃダメ。
以上で設定は完了。
local$ ssh hoge@remote_addr
でログインできるはず。
 ただし、初回の場合は、.ssh/known_hostsにRSA鍵の登録が必要なので
The authenticity of host 'remote_addr (remote_addr)' can't be established. RSA key fingerprint is 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00. Are you sure you want to continue connecting (yes/no)?
という確認を求められることがある。その場合はyesとタイプすればよい。
 今回は、パスフレーズを設定しなかったのでこれで自動認証できるが、
 パスフレーズを設定すると、sshの際にパスフレーズの入力を求められるので
 自動認証が成立しない。
 それを解決するには、ssh-agentを利用すれば良いようだ。
 ※参考サイト
 ノンパスワードでログインしたい
 ssh-agentでパスフレーズをキャッシュさせたい
 また、Linux端末で生成した秘密鍵をWindows上のPuttyで利用する際には、
 Putty用に鍵を変換しなければならない点に注意。
 詳しい記述は、「FedoraCore1で作るネットワークサーバ構築ガイド」のP375付近を参照のこと。
 
 
コメントを残す