为了工作,我使用 SSH 连接服务器。我已经好几个月没有这样做了,所以现在它要求我输入密码。以前,在进行身份验证后就可以正常工作。以下是我通常在 ssh 中输入的内容:ssh -p2222 [email protected]
我查看了调试信息,它显示服务器甚至没有要求提供适当的密钥文件。相反,它首先提供了一个我删除的公钥 (id_rsa)...然后转向私钥...然后它要求输入密码,而我并不需要这个密码。
debug1: Found key in /Users/myname/.ssh/known_hosts:40
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/myname/.ssh/id_rsa
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug1: Trying private key: /Users/myname/.ssh/id_rsa
debug1: Trying private key: /Users/myname/.ssh/id_dsa
debug1: Next authentication method: password
但是,当我指定身份文件时,它起作用了:! ssh -i ~/.ssh/correctkey [email protected]
这些错误是什么意思?如何才能让 ssh 正常工作而不提示输入密码? 这很重要,因为我使用的 GUI 名为河豚--唯一可用的 SCP GUI--并且我无法使用其中的 -i 选项!
服务器端是否存在我需要修复的问题?
谢谢!
答案1
只需将带有键的文件的名称更改为默认值即可。
~/.ssh/correctKey --> ~/.ssh/identity (on client machine)
~/.ssh/correctKey.pub --> ~/.ssh/identity.pub (on server machine)
这不可能吗?
答案2
如果您有非默认私钥文件(例如),您可以通过向文件中添加指令来~/.ssh/correctKey
配置 SSH 以识别并尝试使用该备用密钥(如果该文件尚不存在,则在此过程中创建该文件)。例如,IdentityFile
~/.ssh/config
$ cat ~/.ssh/config
IdentityFile ~/.ssh/correctKey
您还可以在该文件中配置许多其他选项,例如指定在特定主机上使用的默认端口(例如,登录 123.12.123.123 时始终使用端口 2222,或使用默认用户名。请参阅sshd_config(5)
了解详情。
更新如果您的 GUI 应用程序(Fugu)无法直接从 读取 SSH 设置~/.ssh/config
,则您可以使用其“其他 SSH 选项”文本框手动将选项传递给 SSH:
您可以尝试-i ~/.ssh/correctKey
通过该文本字段传递。