当我尝试通过 ssh 连接到远程服务器时,有时我的终端会要求我输入用户名密码,有时要求我输入 ssh 密钥密码。这是正常的吗?我怎样才能让它始终只要求输入 ssh 密钥密码?
我在 Windows 上使用 Gitbash。我使用配置文件来指定主机。
我的配置文件设置如下:
Host remoteservername
Hostname serverbox.net
User samplename
IdentityFile ~/.ssh/id_rsa
IdentitiesOnly yes
然后通过 ssh 登录我正在做的事情:
ssh remoteservername
有时我会收到这样的回复:
samplename@remoteservername's password:
其他时候我会得到我想要的密码请求:
Enter passphrase for key 'c/Users/name/.ssh/id_rsa'
用户名密码很长而且很复杂,所以我理想情况下希望始终只使用 ssh 密钥。
当前设置有效,除了它随机要求输入用户名密码而不是关键短语时。
我运行了 ssh -Tvv 并比较了成功返回和错误返回的日志。大多数日志直到最后都是相同的。导致要求输入用户名密码的尝试有以下几行:
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug2: we did not send a packet, disable method
debug1: Next authentication method: password
[email protected]'s password:
正确的响应将返回以下几行:
debug1: Server accepts key: pkalg rsa-sha2-512 blen 279
debug2: input_userauth_pk_ok: fp SHA256:{KEY HERE}
Enter passphrase for key '/c/Users/name/.ssh/id_rsa':
这可能是我的 ssh 本身的问题吗?还是服务器的配置问题?