为什么 ssh 寻找身份文件?

为什么 ssh 寻找身份文件?

我在关闭 中的密钥身份验证时遇到问题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 版本更新的版本(具有不同的默认身份文件),但代码流程相似。

相关内容