ssh + rsync でパスワードなし認証

rsyncでバックアップを行う場合、毎回パスワードの入力を求められるため、rsyncをcronに登録して、自動でバックアップを行うことができなくて困ったことはありませんか。

そこで今回は、SSHで公開鍵認証を使う事により、パスワードなしでログインできるようになる設定方法について説明します。


■クライアント側設定
1.公開鍵の生成(パスワードなし鍵作成)

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ユーザー/.ssh/id_rsa):【←そのままEnter】
Created directory '/home/ユーザー/.ssh'.
Enter passphrase (empty for no passphrase):【←そのままEnter】
Enter same passphrase again:【←そのままEnter】
Your identification has been saved in /home/ユーザー/.ssh/id_rsa.
Your public key has been saved in /home/ユーザー/.ssh/id_rsa.pub.
The key fingerprint is:
aa:bb:cc:dd:ee:ff:xx:xx:xx:xx・・・ ユーザー@xx.xx.xx

/home/ユーザー/.ssh/ に以下の2つのファイルが出来ていることを確認
id_rsa秘密鍵
id_rsa.pub(公開鍵)

2.sshサーバへ公開鍵(id_rsa.pub)をコピーします。
以下の例では、クライアント側でscpコマンドを使用し、sshサーバの/tmpディレクトリへコピーしています。

$ scp /home/ユーザー/.ssh/id_rsa.pub サーバー:/tmp

3./home/ユーザー/.sshディレクトリと、秘密鍵を保存したid_rsaファイルのパーミッションを、それぞれ700と600に設定します。

$ chmod 700 /home/ユーザー/.ssh
$ chmod 600 /home/ユーザー/.ssh/id_rsa


sshサーバ側設定
1.公開鍵認証を使用するユーザのホームディレクトリに.sshディレクトリが無い場合は作成し、パーミッションを、700に設定します。

$ mkdir /home/ユーザー/.ssh
$ chmod 700 /home/ユーザー/.ssh

2.クライアントからコピーした公開鍵を、/home/ユーザー/.ssh/authorized_keysファイルへ追加し、ファイルパーミッションを、600に設定します。
以下の例では、前述のクライアント側設定で、/tmpに保存した公開鍵(id_rsa.pub)を追加しています。(authorized_keysファイルが存在していない場合でも新規作成されます)

$ cat /tmp/id_rsa.pub >> /home/ユーザー/.ssh/authorized_keys
$ chmod 600 /home/ユーザー/.ssh/authorized_keys


■接続確認
クライアントからサーバーに接続できることを確認します。

$ ssh サーバーPC

パスワード入力なしで接続できればOKです。



■おすすめサービス