스크립트에 의해 ssh-copy-id가 처음 실행될 때“예”라고 대답 하시겠습니까?


8

처음 ssh-copy-id요청할 때

# ssh-copy-id -i .ssh/id_dsa.pub backup@example.com
The authenticity of host 'example.com (xxx.xxx.xxx.xxx)' can't be established.
RSA key fingerprint is 39:fb:5e:70:30:33:2b:18:17:e9:4f:2f:91:b5:d2:21.
Are you sure you want to continue connecting (yes/no)? 

이것을 스크립트 할 수 있습니까? 그래서 스크립트는 예라고 대답 할 것입니까?


답변:


6

ssh-copy-idStrictHostKeyChecking 옵션을 지원하지 않는 경우 다음을 수행하는 스크립트를 작성할 수 있습니다.

  1. ssh-keyscan공개 키를 얻기 위해 대상 서버에 대해 실행
  2. known_hosts 파일에 추가
  3. 운영 ssh-copy-id

8

SSH에는 호스트 키를 신뢰할 수있는 호스트 파일에 자동으로 추가하는 옵션이 있습니다.

ssh-copy-id -i .ssh/id_dsa.pub -o StrictHostKeyChecking=no backup@example.com

대안으로 다음을 수행 할 수 있습니다.

echo "yes \n" | ssh-copy-id -i .ssh/id_dsa.pub backup@example.com

편집 :이 솔루션이 작동하지 않는 것처럼 보이기 때문에 다음 옵션을 ssh-copy-id사용하여 ~/.ssh/config파일을 만들 수 있습니다

StrictHostKeyChecking no

스크립트를 통해 호출되는지 여부에 관계없이 모든 SSH 연결에서 작동합니다.


1
안타깝게도 작동하지 않으며 작동 ssh-copy-id하지 않습니다-o
Sandra

발행 할 때 이상한, 그것을보고 그 스위치를 않습니다ssh-copy-id -?
brain99

1
@sandra ssh-copy-id는 스크립트입니다. -o StrictHostKeyChecking=nossh_config 파일에서 해당 매개 변수 를 추가 하거나 비활성화 하도록이를 수정할 수 있습니다 .
ewwhite

또한 키 위치를 지정할 필요가 없습니다 ... 제대로 ssh-copy-id servername작동합니다.
ewwhite

sudo sed -i.bak 's/ssh \$/ssh -o StrictHostKeyChecking=no \$/' $(which ssh-copy-id).
quanta

0

이 시도:

ssh-copy-id -i ~/.ssh/id_rsa.pub user@example.com -y

호스트 키를 known_hosts 파일에 추가하지 않지만 authorized_keys여기에서 유일한 목적인 경우 원하는 공개 키를 복사 (또는 추가) 할 수 있습니다.


더 -y 옵션이 없습니다
ImranRazaKhan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.