
今日は、公開SSHキーを使用して3台のサーバー(SSHコマンドを送信するサーバーを含めて4台)をセットアップし、いくつかのスクリプトを自動化できるようにしました。
最初の2つのシステムでは動作しますが、3番目のシステムでは動作しません。SSHコマンドを送信するときにSSHは引き続きパスワードを要求します。
ローカルサーバーでSSH公開鍵/秘密鍵を生成する
root@local # ssh-keygen -t rsa
file > /var/.ssh_keys/id_rsa
passphrase > (empty)
root@local # ln -s /var/.ssh_keys/id_rsa /root/.ssh/id_rsa
ローカルサーバーからリモートホストにキーを追加する
root@local # cat /var/.ssh_keys/id_rsa.pub | ssh root@host 'path="/var/.ssh_remote_key" && mkdir -p $path && cat >> $path/authorized_keys && ln -s $path/authorized_keys /root/.ssh/authorized_keys'
ローカルサーバー
# uname -a
Linux 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u3 (2015-08-04) x86_64 GNU/Linux
# sshd -V
OpenSSH_6.7p1 Debian-5, OpenSSL 1.0.1k 8 Jan 2015
リモートサーバー(動作中)
# uname -a
Linux 3.16.0-4-amd64 #1 SMP Debian 3.16.39-1+deb8u2 (2017-03-07) x86_64 GNU/Linux
# sshd -V
OpenSSH_6.7p1 Debian-5+deb8u3, OpenSSL 1.0.1t 3 May 2016
リモート サーバー (パスワードの入力を求められます)
# uname -a
Linux 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-2 (2016-04-08) x86_64 GNU/Linux
# sshd -V
OpenSSH_6.7p1 Debian-5+deb8u2, OpenSSL 1.0.1k 8 Jan 2015
CHMOD /root/.ssh = 0700
CHMOD /root/.ssh/authorized_keys = 0644
答え1
2 つのリモート サーバーは Unix/OpenSSH の同様のバージョンを共有しているため、問題はフォルダーpermission
内のファイルにある可能性があります.ssh
。
以下の点をご確認ください:
.ssh
ディレクトリの権限がグループ/その他に書き込み可能ではない(例:700(drwx------)
または755)(drwxr-xr-x)
- 公開鍵(.pubファイル)は
authorized_keys
644(-rw-r--r--)
- 秘密鍵(id_rsa)は600
(-rw-------)
root
リモート サーバーにとしてログインしようとしている場合は、または が/etc/ssh/sshd_config
含まれていることも確認する必要があります。PermitRootLogin yes
PermitRootLogin without-password