cronなどでrsyncやscpを定期実行したいとき、sshのアクセスをパスワードなしで自動化させたい場合は、鍵認証を仕掛けておくのが定番である。専用のユーザーを作って処理するのが良いが、簡単にrootで実行したときの手順としては以下のとおり。
1 クライアント側でssh-keygenコマンドで秘密鍵と公開鍵を生成
# ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx root@IPアドレス The key's randomart image is: +--[ RSA 2048]----+ | o . ... | | o * o . | | . * o + o | | o . . + o | | o S . . . | | o = o . o . | | o + E . . | | | | | +-----------------+
/root/.ssh/id_rsaと/root/.ssh/id_rsa.pubが生成される。
2 公開鍵である/root/.ssh/id_rsa.pubをログインしたいサーバーへ転送
# scp /root/.ssh/id_rsa.pub サーバーIPアドレス:~
3 サーバーにログインして公開鍵を所定の場所にセット
# ssh サーバー (# mkdir .ssh) (# chmod 700 .ssh) # cat id_rsa.pub >> .ssh/authorized_keys # vi .ssh/authorized_keys (念のため、鍵の最後にあるホスト名をIPアドレスに書き換えておく) # rm id_rsa.pub
以上で、パスワードなし、鍵認証でsshログインできるようになる。