plink를 사용하여 캐시에 서버 호스트 키 자동 저장


21

plink를 사용하여 외부 서버에서 정보를 검색하는 명령을 실행하려고했습니다. 이 plink 명령은 사용자의 입력이 없을 것으로 예상되는 바이너리에서 실행됩니다. 이 오류 메시지를 무시하고 프로그램 출력을 계속할 수있는 플래그가 있습니까?

The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 2048 **:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**
If you trust this host, enter "y" to add the key to
PuTTY's cache and carry on connecting.
If you want to carry on connecting just once, without
adding the key to the cache, enter "n".
If you do not trust this host, press Return to abandon the
connection.
Store key in cache? (y/n)

고맙습니다!


실제 문제는 git이 plink에 대한 입력을 올바르게 제공하지 않거나 plink가 올바르게 입력하지 않는 것입니다. 당신이 시작하는 경우 git clone, 예를 들어, "자식 bash는"입력 (Y / N)를 프롬프트에 떠들썩한 파티에 다음가는, 그리고 bash는 보통으로 응답합니다 bash: y: command not found.
andrybak

kitty 's project의 klink를 사용할 수 있습니다 . 퍼티 포크입니다. -auto-store-sshkey 키가 있습니다.
paxlo

답변:


20

다음과 같이 스크립트를 앞에 추가하십시오.

echo y | plink -ssh root@REMOTE_IP_HERE "exit"

이 의지 파이프 y를 통해 캐릭터 stdinplink당신이 얻을 때 캐시에 보관 키를? (y / n) 프롬프트로 모든 추가 plink명령을 사용자 입력없이 통과 할 수 있습니다. exit가 설립 된 후 명령은 다음과 같은 허용하는 SSH 세션이 닫힙니다 plink명령을 실행합니다.

다음은 외부 서버의 Unix 시간을 로컬 파일에 쓰는 스크립트 예입니다.

echo y | plink -ssh root@REMOTE_IP_HERE "exit"
plink -ssh root@REMOTE_IP_HERE "date -t" > remote_time.tmp

파이프 라이닝 참조 : http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-4.html


-1

아마도 도움이 될 것입니다.

plink -auto_store_sshkey -batch 192.211.158.256 -l user -pw password command

1
-auto_store_sshkey는 plink 버전 0.63의 "알 수없는 옵션"입니다.
Nathan

0.66에도 알려지지 않음
Joril

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