我在关闭 中的密钥身份验证时遇到问题ssh
。我想使用密码连接到远程服务器,但ssh
总是在寻找这些身份文件:
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
我将~/.ssh/config
文件配置为仅使用密码身份验证,如下所示:
Host *
RSAAuthentication no
PreferredAuthentications password
PubkeyAuthentication no
我还将其添加到常规/etc/ssh/ssh_config
文件中,但是当尝试通过 ssh 访问 SVN 服务器时,它仍在寻找这些文件。我对如何进一步配置一无所知ssh
。
答案1
这是例行客户端初始化的一部分ssh
。当您不使用非对称密钥身份验证时,查找(并确认其不存在)默认身份文件应该没有什么坏处。
客户ssh
端将所有默认身份文件路径的路径名添加到其身份文件列表中readconf.c
:fill_default_options()
if (options->num_identity_files == 0) {
add_identity_file(options, "~/", _PATH_SSH_CLIENT_ID_RSA, 0);
add_identity_file(options, "~/", _PATH_SSH_CLIENT_ID_DSA, 0);
add_identity_file(options, "~/", _PATH_SSH_CLIENT_ID_ECDSA, 0);
add_identity_file(options, "~/",
_PATH_SSH_CLIENT_ID_ED25519, 0);
}
然后迭代列表中的所有身份文件(上面的默认值和用户配置添加的任何文件)ssh.c
:load_public_identity_files()
,这是debug1
生成您所看到的消息的地方。
链接和引用的源代码来自比您正在使用的 OpenSSH 版本更新的版本(具有不同的默认身份文件),但代码流程相似。