SSH 连接查看不正确的私钥 - 无法连接

SSH 连接查看不正确的私钥 - 无法连接

我很难理解下面命令的输出。我正在尝试连接到 godaddy 服务器但未成功。我在 godaddy 的 cpanel 上启用了 SSH 访问,创建了公钥/私钥,下载了私钥,将其移入~/.ssh并使用ssh-add -K ~/.ssh/mykey.我无法连接。我知道该网站上还有另一个问题,但我提供实际输出并想知道它失败的原因。

我不知道为什么它不寻找名为的 SSH 密钥key4govi(这就是我的私钥的名称。它似乎正在查看它们的密钥id_rsa(假设从输出中)。

以下是本地计算机上 .ssh 文件夹的文件夹内容:

github_rsa              
github_rsa.pub      
id_rsa
id_rsa.pub
key4govi
key4govi.pub
known_hosts

这是我的命令: ~ => ssh [email protected] -vv

这是输出:

OpenSSH_6.9p1, LibreSSL 2.1.8
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 20: Applying options for *
debug1: /etc/ssh/ssh_config line 53: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to callydai.com [107.180.55.15] port 22.
debug1: Connection established.
debug1: identity file /Users/raigovind93/.ssh/id_rsa type 1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/raigovind93/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/raigovind93/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/raigovind93/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/raigovind93/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/raigovind93/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/raigovind93/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/raigovind93/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.9
ssh_exchange_identification: read: Connection reset by peer

答案1

ssh_exchange_identification: read: Connection reset by peer

指出不同的错误。这意味着您能够连接到 ssh 服务器,但连接立即关闭,而没有收到正确的“hello”消息。服务器在那里运行吗?没有某种政策可以让您连接吗?您有正确的反向 DNS 记录吗?

您的密钥在钥匙串中正确,一旦您能够连接到正确的密钥,就会提供。触摸的其他键是默认路径,ssh 将始终尝试打开它们。

答案2

答案很晚,但在我看来,虽然您可能已经加载了代理/钥匙串的密钥,SSH 客户端似乎根本没有尝试使用代理

不同 OpenSSH 版本之间该-K选项的含义有所不同。ssh-add您提到“钥匙串”一词的事实表明您可能熟悉 的 MacOS 定制版本ssh-add,并且该选项似乎对它有意义。

在普通 OpenSSH(版本 8.4)上,该-K选项现在从 FIDO 身份验证器加载密钥,因此客户端操作系统版本在这里可能很重要。

在这种情况下需要检查的事项是:

  • 基本健全性检查:SSH_AUTH_SOCK环境变量是否存在?它是否指向有效的 UNIX 套接字?应显示您的用户帐户拥有的进程fuser $SSH_AUTH_SOCK的 PID ,该进程是您当前登录会话的一部分。ssh-agent

  • 你说你跑了,ssh-add -K ~/.ssh/mykey但实际私钥文件的名称是~/.ssh/key4govi.我认为这只是写问题时的一个错误,而你实际上跑了ssh-add -K ~/.ssh/key4govi......对吧?

  • 文件是否受到~/.ssh/key4govi适当保护?man ssh-add说(强调我的):

除了用户之外,任何人都不能读取身份文件。注意ssh-add 如果其他人可以访问身份文件,则忽略这些文件。

如果~/.ssh/key4govidid 的权限比 更宽松-rw-------,那么它可能会被忽略,因此您的ssh-add命令可能根本没有执行任何操作。

  • 您是否有一些自定义配置,~/.ssh/config除非明确允许,否则会停止使用 SSH 代理/钥匙串?

答案3

我在文件中指定密钥.ssh/config。配置文件是你的朋友。

Host some-name
    # The actual host name or IP address of the server
    HostName xxx.xxx.xxx.xx
    User username
    IdentityFile ~/.ssh/some-key-edcsa

然后,当您键入时,ssh some-name它将尝试使用与该名称关联的键。

答案4

也许你可以尝试这个命令

ssh-copy-id -i identity-file(ex.id_rsa.pub) user@server

系统会要求您输入帐户的密码,这意味着PasswordAuthentication yes必须设置。

该命令在 .ssh/authorized_keys 中创建所需的条目。所以之后你应该能够通过以下方式连接到服务器ssh -i identity-file user@server

相关内容