2台のマシン間でsshキーを設定する場合、認証は一方向でのみ機能します。接続しようとすると、一方のサーバーが他方の公開鍵を受け入れません。何か案は?これが詳細な出力です。
debug1: Reading configuration data /usr/local/etc/ssh_config
debug1: Rhosts Authentication disabled, originating port will not be trusted.
debug1: Connecting to xxxxxx.com [xx.xx.xx.xx] port 22.
debug1: Connection established.
debug1: identity file /root/.ssh/identity type -1
debug1: identity file /root/.ssh/id_rsa type 1
debug1: identity file /root/.ssh/id_dsa type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.1p1 Debian-5
debug1: match: OpenSSH_5.1p1 Debian-5 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_3.6.1p2
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-cbc hmac-md5 none
debug1: kex: client->server aes128-cbc hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host 'xxxxxx.com' is known and matches the RSA Host key.
debug1: Found key in /root/.ssh/known_hosts:17
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Trying private key: /root/.ssh/identity
debug1: Offering public key: /root/.ssh/id_rsa
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /root/.ssh/id_dsa
debug1: Next authentication method: password
編集:重要な場合、これはroot
用です
Sshサーバーで次のオプションの値を確認します。
PubkeyAuthentication Yes
RSAAuthentication Yes
PermitRootLogin Yes
SELinuxがsshdが/root/.ssh/authorized_keysファイルを読み取れないというケースがありました。/var/log/messagesは、sshdプロセスがauthorized_keysファイルの読み取り操作へのアクセスを拒否されたことを示します。
実行した後restorecon -v /root/.ssh/authorized_keys
、公開鍵を使用したSSHは正常に機能しました。
/etc/ssh/sshd_config
でStrictModesを「no」に変更するとうまくいきました。
sysadmin@suselinux1:~> con sysadmin kaiser
Welcome to Ubuntu 12.04.1 LTS (GNU/Linux 3.2.0-25-generic i686)
* Documentation: https://help.ubuntu.com/
Last login: Fri Nov 9 15:40:11 2012 from 10.1.3.25
sysadmin@kaiser:~$ date
vie nov 9 17:53:11 CST 2012
sysadmin@kaiser:~$
キーが転送されていませんでした。別のターミナルウィンドウでSSHエージェントを起動したことが判明したため、$SSH_AUTH_SOCK
環境変数は私が接続していた端末で利用できませんでした。
したがって、エージェントを手動で開始する場合は、必ず同じターミナルセッションで接続してください。
.sshフォルダー、authorized_keyファイル、およびホームフォルダーのアクセス許可と所有者を確認してください。ログインしようとすると、/ var/log /auth.logからさらに多くのメッセージが表示されます。
私の場合、問題は誤ったShellexecにありました。
journalctl -f
....
Feb 25 11:45:54 59a02b89e0f6 sshd[]: User user not allowed because Shell /usr/bin/env /bin/bash does not exist
....
そのユーザーの/ etc/passwdファイルを変更しました
vi /etc/passwd
....
user:x:1000:1000::/home/user:/bin/bash
....