어느 키로 어느 계정에 접속하는지 확인합니다
ssh -G example-host
ssh -v -o IdentitiesOnly=yes -i ~/.ssh/id_ed25519 [email protected]example-host와 example.org는 설명용 이름입니다. -G는 적용한 설정을 출력하고, -v는 실제 접속 시의 선택 과정을 보여 줍니다. 공개키가 대상 계정에 등록되어 있는지, 사용하려는 개인키가 맞는지, 서버가 해당 방식을 허용하는지 확인합니다.
키는 생성한 호스트와 다른 호스트에서 사용했다는 이유만으로 자동 무효가 되지는 않습니다. 개인키 접근 권한과 서버의 authorized_keys·상위 디렉터리 검사 조건은 별도로 맞춰야 합니다. 디버그 로그에는 사용자·호스트 정보가 있으므로 그대로 공개하지 않습니다.
중계 서버를 거치는 경로를 명시합니다
Host relay
HostName relay.example.org
User learner
Host lab
HostName lab.example.org
User learner
ProxyJump relay
IdentityFile ~/.ssh/id_ed25519
IdentitiesOnly yes~/.ssh/config의 예입니다. ssh lab은 relay를 경유하는 연결을 만듭니다. 중계 서버 로그인과 최종 서버 로그인은 각각의 인증 단계입니다. 이를 위해 개인키를 중계 서버에 복사해야 하는 것은 아닙니다.
- 로컬 SSH 클라이언트접속 설정과 인증할 키를 선택합니다.
- 중계 서버최종 서버로 가는 연결을 전달합니다.
- 최종 서버대상 계정의 인증과 세션을 처리합니다.
상자는 연결 경로를 나타냅니다. 두 서버가 같은 키나 계정 설정을 자동 공유한다는 뜻은 아닙니다.
호스트 키 검사와 사용자 인증은 별개입니다
known_hosts는 접속하는 서버의 신원 확인에 쓰이고 authorized_keys는 서버가 사용자 인증에 허용할 공개키를 담습니다. 이름이 비슷한 문제가 생겨도 두 파일의 역할을 혼동하지 않습니다. 서버 키가 바뀌었다면 변경 사유와 실제 지문을 확인해야 합니다.
자동화에서는 암호를 명령줄이나 스크립트에 넣기보다 적절히 관리한 키·agent와 BatchMode 등의 동작을 설계합니다. BatchMode는 자동으로 인증을 성공시키는 옵션이 아니라 대화형 질문을 하지 않도록 하는 옵션입니다.