SSHを利用してノンパスワードログインする

別のサーバー同士でコマンドをやり取りするには
ssh username@servername commandname として実行できるが、このときにパスワードが要求されてしまう。
また、別のサーバーからファイルをセキュアに転送するには、
scp username@servername:(リモートサーバーのパス) (ローカルのパス) として実行できるが、このときにやはりパスワードが要求されてしまう。
これは自動化する上でかなり問題があり、expectという方法でパスワードを自動入力させる方法もあるが、これはクレバーではない。
sshにはノンパスワードログインという方法があり、接続元で発行した公開鍵を接続先のアカウントの.ssh/authorized_keys に保存することで実現できる。
設定方法でわかりやすかったサイトは、ぴえ~るの活動日記だけれども、デフォルトではauthorized_keys2ではなくauthorized_keysなので注意が必要。
また、多くのサーバーではこれだけでは接続できないので、接続先サーバーの/etc/ssh/sshd_configを編集(RSA公開鍵認証の有効化)しなければならない。わかりやすいサイトは、Gentoo Linuxで自宅サーバ であり、

#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeyFile .ssh/authorized_keys

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeyFile .ssh/authorized_keys

とすればよい。
僕の場合には、これをやってもうまくいかず、vオプションをつけてデバッグしてみたら
Offering public key: /home/hogehoge/.ssh/id_rsa
から先の認証手続きがうまくいっていないことがわかった。
いろいろ調べてみたら、おさかな学習帳にあるとおり接続先の/var/log/secureにエラーが出ていて、.ssh フォルダのパーミッションが正しくなかったために接続できなかったというオチだった。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です