UserKnownHostsFile 옵션을 무시하는 macOS ssh

UserKnownHostsFile 옵션을 무시하는 macOS ssh

임시 IP 주소가 있고 종종 SSH 키가 변경되는 점프 호스트를 통해 가상 머신에 SSH로 연결하는 경우가 많습니다. SSH 키가 변경되면 메시지를 표시하거나 SSH 키를 수락하라는 메시지를 표시하고 싶지 않습니다.

StrictHostKeyChecking 및 UserKnownHostsFile 옵션에 대해 읽었지만 아무런 효과가 없는 것 같습니다. 명령줄에서 UserKnownHostsFile=/dev/null을 전달하면 SSH 호스트 키가 항상 ~/.ssh/known_hosts에 추가됩니다. (현재 수십 개의 항목이 있습니다.) 항상 SSH 키를 수락하라는 메시지가 표시됩니다.

보안상의 이유로 bash 파일에 스크립팅된 이 연결에 대해서만 이러한 비검사 수준이 전역적으로 적용되는 것을 원하지 않습니다.

내가 사용하는 ssh 명령은 다음과 같습니다.

ssh  -o 'ConnectTimeout=10' \
     -o 'StrictHostKeyChecking=no' \
     -o 'UserKnownHostsFile=/dev/null' \
     -o 'CheckHostIP=no' \
     -i ~/.ssh/my_ident \
     "username@ip" \
     -J "username@jump"

또한 '=' 부분이 문제인 경우 이를 시도했지만 여전히 동일한 결과를 얻습니다.

ssh  -o 'ConnectTimeout 10' \
     -o 'StrictHostKeyChecking no' \
     -o 'UserKnownHostsFile /dev/null' \
     -o 'CheckHostIP no' \
     -i ~/.ssh/my_ident \
     "username@ip" \
     -J "username@jump"

저는 OpenSSH_7.9p1, LibreSSL 2.7.3을 사용하는 macOS 10.14.4를 사용하고 있습니다.

-o 매개변수가 왜 무시되거나 내가 원하는 것을 수행하지 않는지 아시나요?

답변1

이는 MacOS와 관련이 없을 수도 있습니다. StrictHostKeyChecking및 같은 매개변수 UserKnownHostsFileCheckHostIP연결 중인 대상 호스트에만 관련됩니다. 귀하의 경우에는 입니다 ip. 인수 jump의 일부로 지정된 호스트 에는 영향을 주지 않습니다 -J.

명령줄에서 점프 호스트에 대해 이러한 설정을 지정할 수 있는 방법은 없다고 생각합니다. 하지만 ~/.ssh/config다음과 같이 해당 매개변수를 파일에 추가할 수 있습니다 .

Host jump
    StrictHostKeyChecking no
    UserKnownHostsFile /dev/null
    CheckHostIP no

관련 정보