SSHがIDファイルを探しているのはなぜですか?

SSHがIDファイルを探しているのはなぜですか?

キー認証をオフにするのに問題がありますssh。パスワードを使用してリモートサーバーに接続したいのですが、ssh常に次のIDファイルを探しています。

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_configsshを介してSVNサーバーにアクセスしようとすると、まだこれらのファイルを探しています。私はそれをもっと整理する方法を知りませんssh

答え1

これは日常的なクライアント初期化の一部ですssh。非対称キー認証を使用していない場合は、デフォルトのIDファイルを見つけて存在しないことを確認するのも悪くありません。

クライアントは、sshすべてのデフォルトのIDファイルパスのパス名をIDファイルのリストに追加します。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);
}

次に、リスト内のすべてのIDファイル(上記のデフォルト値とユーザー設定によって追加されたファイル)を繰り返します。ssh.c:load_public_identity_files()debug1表示されるメッセージが生成される場所です。

リンクされ参照されたソースコードは、使用しているOpenSSHのバージョン(他の基本IDファイルを含む)よりも最新のOpenSSHから取得されますが、コードフローは似ています。

関連情報