ssh-copy-id가 기존 인증 키를 무시하도록 강제하는 방법은 무엇입니까?

ssh-copy-id가 기존 인증 키를 무시하도록 강제하는 방법은 무엇입니까?

편집 : 있습니다이에 대한 버그 보고서, 동등이 답변.

공개 키를 여러 컴퓨터에 복사하는 스크립트를 작성하려고 합니다. 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만 포함되어 있습니다 . 약간 보기 흉하지만 현재 스크립트로는 이를 수행할 수 있는 깔끔한 방법이 없다고 생각합니다 .sshssh-F /dev/nullssh-copy-id

관련 정보