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에서 가져온 것이지만 코드 흐름은 비슷합니다.

관련 정보