題 SSH不接受公鑰


在兩台計算機之間設置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


4
2018-06-21 14:37


起源


我假設你的sshd_config允許root登錄? - heavyd
這是特定於此服務器的問題嗎?您之前是否成功設置了ssh密鑰授權? - Doug Harris
還有其他帳戶以這種方式進行身份驗證就好了,只是沒有root - Zurahn
我最終使用了一個正在工作和sudoing的不同帳戶。好吧,不是那麼優雅,但我花了足夠的時間在這上面。 - Zurahn


答案:


檢查ssh服務器上以下選項的值:

PubkeyAuthentication Yes
RSAAuthentication Yes
PermitRootLogin Yes

1
2018-06-21 14:44



RSAAuthentication是PubkeyAuthentication是的 - Zurahn
檢查PermitRootLogin是否未設置為no,如果設置為no,則將其設置為nopwd - radius
它被設定為 yes 然後我改成了 without-password 並重新啟動ssh沒有任何任何影響 - 它仍然要求輸入密碼。那個,我的朋友,是決心。 - Zurahn
@radius沒有nopwd。並且將其設置為無密碼只會使它更安全,因為它們仍然需要密鑰。無論如何,無論如何鍵都是第一位的。如果他不能使用鑰匙,他仍然無法使用鑰匙。我不知道,也許他沒有復制他的公鑰,或者他沒有在ssh服務器上以正確的用戶身份登錄。 - barlop


我剛剛遇到一個SELinux阻止sshd讀取/root/.ssh/authorized_keys文件的情況。 / var / log / messages將顯示sshd進程被拒絕訪問authorized_keys文件上的讀取操作。

我跑了之後 restorecon -v /root/.ssh/authorized_keys,使用公鑰的SSH工作正常。


8
2018-04-08 13:08



我的日誌沒有顯示拒絕訪問,但我還是運行了這個命令。你知道什麼,它有效。謝謝! - Kaivosukeltaja


將StrictModes更改為“no” /etc/ssh/sshd_config 為我工作。

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:~$ 

5
2017-11-10 00:07



而不是禁用 StrictModes 你可以修復文件的文件權限 .ssh (和 .ssh 目錄本身)而不是。 - Flimm


我的密鑰沒有被轉發,原來我已經在不同的終端窗口啟動了SSH代理,所以 $SSH_AUTH_SOCK 環境變量在我進行連接的終端中不可用。

因此,如果要手動啟動代理,請確保在同一終端會話中建立連接。


1
2018-06-27 13:45





檢查.ssh文件夾,authorized_key文件和主文件夾的權限和所有者,/ var / log / auth.log將在您嘗試登錄時為您提供更多消息。


0
2017-07-02 05:10



/var/log/auth.log 在服務器上,而不是客戶端(如果有人假設後者)。 - Daniel Beck♦