Linux

調試 SSH 未連接

  • January 23, 2021

我正在嘗試使用 ssh 連接到遠端伺服器,但我有Permission denied (publickey)..

我已經了解了我可以提出的所有可能的原因以及其他問題的建議。

  • 我確定我的密鑰是正確的,我檢查了很多次,我可以使用該密鑰從其他機器登錄到目標伺服器;
  • 我將文件的權限設置為 700

好吧,什麼給了ssh -v

OpenSSH_4.3p2, OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
debug1: Reading configuration data /root/.ssh/config
debug1: Applying options for fmbnew
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to --myhost-- [--myip--] port 22.
debug1: Connection established.
debug1: permanently_set_uid: 0/0
debug1: identity file "~/.ssh/host-key" type -1
debug1: loaded 1 keys
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.7p1 
Debian-5+deb8u2
debug1: match: OpenSSH_6.7p1 Debian-5+deb8u2 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_4.3
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-sha1 none
debug1: kex: client->server aes128-ctr hmac-sha1 none
debug1: sending SSH2_MSG_KEXDH_INIT
debug1: expecting SSH2_MSG_KEXDH_REPLY
debug1: Host '--myhost--' is known and matches the RSA host key.
debug1: Found key in /root/.ssh/known_hosts:24
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
debug1: Next authentication method: publickey
debug1: Trying private key: "~/.ssh/host-key"
debug1: No more authentication methods to try.
Permission denied (publickey).

這是在auth.log伺服器上發現的(不多):

Apr  1 12:15:33 host-07 sshd[23955]: Connection closed by --my-client-ip-- [preauth]

我應該說這台客戶端機器很舊,它有 Centos 5。但在我開始深入探勘之前,我需要確定一下。

有什麼想法我至少可以弄清楚到底出了什麼問題?

編輯:更詳細的伺服器端日誌(DEBUG1):

Apr  1 13:19:11 host-07 sshd[25465]: debug1: Forked child 25512.
Apr  1 13:19:11 host-07 sshd[25512]: Set /proc/self/oom_score_adj to 0
Apr  1 13:19:11 host-07 sshd[25512]: debug1: rexec start in 5 out 5 newsock 5 pipe 7 sock 8
Apr  1 13:19:11 host-07 sshd[25512]: debug1: inetd sockets after dupping: 3, 3
Apr  1 13:19:11 host-07 sshd[25512]: Connection from --- port 55088 on --- port 22
Apr  1 13:19:11 host-07 sshd[25512]: debug1: Client protocol version 2.0; client software version OpenSSH_4.3
Apr  1 13:19:11 host-07 sshd[25512]: debug1: match: OpenSSH_4.3 pat OpenSSH_4* compat 0x00000000
Apr  1 13:19:11 host-07 sshd[25512]: debug1: Enabling compatibility mode for protocol 2.0
Apr  1 13:19:11 host-07 sshd[25512]: debug1: Local version string SSH-2.0-OpenSSH_6.7p1 Debian-5+deb8u2
Apr  1 13:19:11 host-07 sshd[25512]: debug1: permanently_set_uid: 104/65534 [preauth]
Apr  1 13:19:11 host-07 sshd[25512]: debug1: list_hostkey_types: ssh-rsa,ssh-dss,ecdsa-sha2-nistp256,ssh-ed25519 [preauth]
Apr  1 13:19:11 host-07 sshd[25512]: debug1: SSH2_MSG_KEXINIT sent [preauth]
Apr  1 13:19:11 host-07 sshd[25512]: debug1: SSH2_MSG_KEXINIT received [preauth]
Apr  1 13:19:11 host-07 sshd[25512]: debug1: kex: client->server aes128-ctr hmac-sha1 none [preauth]
Apr  1 13:19:11 host-07 sshd[25512]: debug1: kex: server->client aes128-ctr hmac-sha1 none [preauth]
Apr  1 13:19:11 host-07 sshd[25512]: debug1: expecting SSH2_MSG_KEXDH_INIT [preauth]
Apr  1 13:19:11 host-07 sshd[25512]: debug1: SSH2_MSG_NEWKEYS sent [preauth]
Apr  1 13:19:11 host-07 sshd[25512]: debug1: expecting SSH2_MSG_NEWKEYS [preauth]
Apr  1 13:19:11 host-07 sshd[25512]: debug1: SSH2_MSG_NEWKEYS received [preauth]
Apr  1 13:19:11 host-07 sshd[25512]: debug1: KEX done [preauth]
Apr  1 13:19:12 host-07 sshd[25512]: debug1: userauth-request for user myuser service ssh-connection method none [preauth]
Apr  1 13:19:12 host-07 sshd[25512]: debug1: attempt 0 failures 0 [preauth]
Apr  1 13:19:12 host-07 sshd[25512]: debug1: PAM: initializing for "myuser"
Apr  1 13:19:12 host-07 sshd[25512]: debug1: PAM: setting PAM_RHOST to "--myip--"
Apr  1 13:19:12 host-07 sshd[25512]: debug1: PAM: setting PAM_TTY to "ssh"
Apr  1 13:19:12 host-07 sshd[25512]: Connection closed by --myip-- [preauth]
Apr  1 13:19:12 host-07 sshd[25512]: debug1: do_cleanup [preauth]
Apr  1 13:19:12 host-07 sshd[25512]: debug1: monitor_read_log: child log fd closed
Apr  1 13:19:12 host-07 sshd[25512]: debug1: do_cleanup
Apr  1 13:19:12 host-07 sshd[25512]: debug1: PAM: cleanup
Apr  1 13:19:12 host-07 sshd[25512]: debug1: Killing privsep child 25513

如果您有 root,請在前台執行 sshd 並在調試模式下使用sshd -D -d. 您需要先停止 sshd 守護程序。伺服器提供了有關密鑰失敗原因的更具體的資訊。

你提到文件是0700。什麼是.ssh?它也必須是 0700。

如果它可能有幫助,我遇到了一個類似的問題,我也無法通過 ssh 登錄,調試消息看起來很相似

我確實嘗試執行pam_rally2 -r --user ${username}以重置失敗計數,但它仍然失敗。然後我記得我已經切換到發行版focal併升級了libc等……

重新安裝ssh確實解決了最後的問題…

引用自:https://serverfault.com/questions/841946