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

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

외부 서버에서 정보를 검색하기 위해 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)

감사합니다!

답변1

다음을 스크립트 앞에 추가해 보세요.

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

y이렇게 하면 캐릭터를 얻을 때 stdin까지 파이프됩니다.plink키를 캐시에 저장하시겠습니까? (예/아니요)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

답변2

허용되는 대답은 "허용 가능"이지만 안전하지 않습니다. 가장 좋은 방법은 plink할 호스트 키를 지정하여중간에있는 남성공격.

plink -hostkey aa:bb:cc... root@REMOTE_IP_HERE [...]

답변3

PuTTYplink.exe설치된 호스트에서 '허용되는 서버 키'의 동일한 캐시를 공유합니다 .

따라서 귀하의 시나리오가인터렉티브(따라서 'y' 또는 'n'을 눌러도 불만 사항이 들리지 않는 경우) 해결 방법은 먼저 PuTTY와의 연결을 시도하는 것입니다.

이 작업을 수행할 때:

  • PuTTY서버에 대한 대화형 SSH 세션을 열고 시작하는 척합니다.
  • 신뢰할 것인지 묻는 키를 표시하는 Windows 대화 상자가 나타납니다.
  • MITM의 병동에 제시된 키를 확인한 다음 누르십시오.OK
  • 이제부터는 plink.exe서버를 신뢰하는지 여부를 묻지 않을 것입니다. 서버는 이미 귀하가 신뢰한다는 것을 알고 있습니다.

답변4

옵션 auto_store_sshkey이 존재합니다클링크, 이는 다음의 일부입니다.고양이 새끼, 스토어 키 프롬프트를 건너뛸 수 있습니다.

klink -auto_store_sshkey -batch 192.211.158.256 -l user -pw password 

관련 정보