LinuxからLinuxへ、SSHを用いて、パスフレーズの入力を行わないでログインする為の設定を行いましたので、記録しておきます。
1.導入環境
SSH接続元はCentOS6(アカウント:root)、SSH接続先はAWS EC2(アカウント:ec2user)になります。
SSH接続元にSSHクライアントが入っていなかったので、インストールしました。
# rpm -qa | grep ssh openssh-server-5.3p1-70.el6_2.2.x86_64 openssh-5.3p1-70.el6_2.2.x86_64 libssh2-1.2.2-7.el6_1.1.x86_64 # yum info openssh-clients (省略) Available Packages Name : openssh-clients Arch : x86_64 Version : 5.3p1 (省略) # yum install openssh-clients
以上で、パッケージ環境の準備は整いました。
2.SSH接続元でキーペアの作成
SSH接続元で、「ssh-keygen」コマンドで秘密鍵と公開鍵のペアを作成します。なお、この際にパスフレーズは設定しない事がポイントになります。
# which ssh-keygen /usr/bin/ssh-keygen # ssh-keygen -t rsa 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) Enter same passphrase again:(何も入力しないでEnter) 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: (省略) +--[ RSA 2048]----+ (省略) +-----------------+ #
以上で、秘密鍵「id_rsa」と、公開鍵「id_rsa.pub」が作成できました。
3.SSH接続先のsshd_configを修正
SSH接続先の「/etc/ssh/sshd_config」で、以下の値を有効にしておきます。
PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
設定値を変更した後は、sshdを再起動しておきます。
4.SSH接続先のアカウントのauthorized_keysに公開鍵をコピー
SSH接続元で作成した公開鍵「id_rsa.pub」の内容を、SSH接続先アカウントの「authorized_keys」ファイルにコピーします。
以上で設定は終了になります。
5.SSH接続確認
SSH接続元からSSH接続先にパスフレーズなしでログインしてみます。
# ssh ec2user@(aws ec2アドレス) (省略) __| __|_ ) _| ( / Amazon Linux AMI ___|\___|___| (省略) Amazon Linux version 2012.09 is available. $
無事、パスフレーズなしでログインできました。
ついでに、scpコマンドでも、パスフレーズなしでコピーできる事も確認できました。
# scp (バックアップ対象) ec2user@(aws ec2アドレス):(バックアップ先ディレクトリ)