1.やりたいこと
タイトルにはsshと書きましたが、私がやりたかったことはrsyncでパスワードなしで認証をすることでした。
ログインの都度パスワードを聞かれていては、バッチ処理で実行することができません。
そこで以下の設定を、クライアント側とサーバ側で行います。
2.設定方法
クライアント側
①パスワードなし認証をしたいユーザでログインし、以下コマンドを実行して暗号鍵・公開鍵を生成する
ssh-keygen -t rsa -N “”
→~/.ssh/id_rsa.pub が生成される
②.sshディレクトリと、秘密鍵(id_rsa)ファイルのパーミッションを、それぞれ700と600に設定する。
※自分以外のユーザに書き込み権限を与えないようにするため
③接続先サーバへ生成した公開鍵(id_rsa.pub)をコピーする
(FTPやSCPでコピーすると良いかと思います)
サーバ側
④クライアントから受信した公開鍵を、authorized_keysファイルへ追加する。
cat id_rsa.pub >> $ログインユーザのホームディレクトリ/.ssh/authorized_keys
⑤authorized_keysファイルの権限を変更する。
chmod 600 /home/ユーザー/.ssh/authorized_keys
※自分以外のユーザに書き込み権限を与えないようにするため
以上で完了です。クライアントから、「ssh ユーザ名@IPアドレス」で接続すると、パスワード認証なしでログインできるようになります。
ちなみに、複数のサーバに対してパスワードなし認証をしたい場合は、①で生成した公開鍵を流用できるので、③の作業からでOKです。
コメント