![UserKnownHostsFile 옵션을 무시하는 macOS ssh](https://rvso.com/image/1592515/UserKnownHostsFile%20%EC%98%B5%EC%85%98%EC%9D%84%20%EB%AC%B4%EC%8B%9C%ED%95%98%EB%8A%94%20macOS%20ssh.png)
임시 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
및 같은 매개변수 UserKnownHostsFile
는 CheckHostIP
연결 중인 대상 호스트에만 관련됩니다. 귀하의 경우에는 입니다 ip
. 인수 jump
의 일부로 지정된 호스트 에는 영향을 주지 않습니다 -J
.
명령줄에서 점프 호스트에 대해 이러한 설정을 지정할 수 있는 방법은 없다고 생각합니다. 하지만 ~/.ssh/config
다음과 같이 해당 매개변수를 파일에 추가할 수 있습니다 .
Host jump
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
CheckHostIP no