편집 : 있습니다이에 대한 버그 보고서, 동등이 답변.
공개 키를 여러 컴퓨터에 복사하는 스크립트를 작성하려고 합니다. ssh-copy-id
복사하기 전에 현재 구성으로 로그인할 수 있는지 확인하지만 안타깝게도 여기 IdentityFile
에는 ~/.ssh/config
.완전히 무시하다~/.ssh/config
;이것을 할 수 있는 방법이 있나요? 아니면ssh-copy-id
키를 항상 추가하도록 하시겠습니까 ?이것은 실제로아니요일하다:
ssh-add "$old_key"
ssh-copy-id -i "$new_key" -o "IdentityFile $new_key" "$login"
이건 비슷하면서도 다른데SSH가 .ssh/config를 무시하도록 만드는 방법은 무엇입니까?.
답변1
코드를 확인한 후 ssh-copy-id
이 해킹이 작동하는 것을 확인했습니다.
SSH_OPTS='-F /dev/null' ssh-copy-id [...]
그러나 문서화된 기능에만 의존하는 솔루션에는 여전히 관심이 있습니다.
답변2
의 사용은 SSH_OPTS
미래에도 보장되지 않을 수 있습니다(보안상의 이유로 스크립트는 처음에 이를 재설정해야 한다고 생각합니다. 동작은 지정되지 않은 환경 변수에 의존해서는 안 되며 어떤 경우에는 정리되지 않았을 수 있습니다). 수행할 수 있는 작업(아마도 쉘 기능을 통해):
env PATH="/path/to/special_dir:$PATH" ssh-copy-id [...]
여기에는 실제 작업을 수행하는 스크립트 /path/to/special_dir
만 포함되어 있습니다 . 약간 보기 흉하지만 현재 스크립트로는 이를 수행할 수 있는 깔끔한 방법이 없다고 생각합니다 .ssh
ssh
-F /dev/null
ssh-copy-id