sshでパスワードなし認証をしたい場合の設定

※当サイトではアフィリエイト広告を利用しています

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です。

 

コメント