SSH는 명령줄에 전달된 키를 허용하지 않습니다.

SSH는 명령줄에 전달된 키를 허용하지 않습니다.

공개 키 인증을 사용하여 내 컴퓨터 중 하나에 로그인하는 데 문제가 있어서 문제를 디버깅하고 싶습니다. 문제를 찾을 때까지 지금은 무시하고 싶은 복잡한 SSH 구성 파일이 있습니다. 그래서 명령줄에 모든 것을 지정합니다.

ssh -F /dev/null -vvv -i ~/.ssh/mykey -p 12345 myuser@mymachine

그러나 ssh는 단순히 명령줄에 강제로 적용한 파일을 제공하는 대신 수많은 공개 키 파일(모두 실패)을 계속 제공합니다.

실제로 ~/.ssh내 디렉터리의 모든 키를 제공합니다. 강제로 제공한 공개 키를 제공하기 시작했지만 실패했으며(아직 이유는 모르겠습니다) 디렉터리의 나머지 공개 키를 계속 제공했습니다 ~/.ssh.

왜 그런 겁니까? mykey실패한 후에는 시도를 중단하기를 바랍니다 .

답변1

OpenSSH는 기본 ID와 ssh-agent기본 로드 ID(일반적으로 원하는 것)를 모두 제공합니다. 이 동작을 방지하려면 다음 옵션이 있습니다 IdentitiesOnly.

IdentitiesOnly

ssh(1)인증 ID와 인증서 파일만 사용하도록 지정합니다 .파일에서 명시적으로 구성하거나 ssh_config명령 ssh(1)줄에 전달, ssh-agent(1)또는 a가 PKCS11Provider더 많은 ID를 제공하더라도 마찬가지입니다. 이 키워드에 대한 인수는 yesor no(기본값)이어야 합니다. 이 옵션은 ssh-agent다양한 ID를 제공할 때 유용합니다 .

관련 정보