2017-03-09 1 views
1

known_hosts 파일에 새 연결을 삽입하는 스크립트를 만들고 싶습니다.ssh 연결을 자동화 할 수 있습니까? ssh [email protected]

ssh [email protected] 

가 그럼 난 수익이 얻을 :

나는에서 known_hosts에 새로운 서버를 추가 할

내가 수동으로이 명령을 사용하여 파일을

The authenticity of host 'server.company.com (XX.34.228.XXX)' can't be established. 
ECDSA key fingerprint is 78:eb:28:7c:a6:19:4f:28:48:ab:0d:c6:e4:4e:dc:ff. 
Are you sure you want to continue connecting (yes/no)? 

를 '예'대답

반품으로 환불 받음 :

경고 : 'server.company.com XX.34.228.XXX'(ECDSA) 이 알려진 호스트 목록에 영구적으로 추가되었습니다. [email protected]의 암호 :

암호를 인쇄 한 후 - 원격 서버에 연결되어 있습니다.

다음에 연결하고 싶을 때 암호를 다시 입력 할 필요가 없습니다.

쉘 스크립트를 사용하여이 프로세스를 자동화하는 방법이 있습니까? 나는 행운에 모든 옵션을 시도 :

yes | ssh [email protected] 

echo yes | ssh [email protected] 

을하지만 아무것도 ...

답변

1

내에서 known_hosts 파일에 새로운 연결을 삽입하는 스크립트를 만들려면 작동하지

그것에 대해 ssh-keyscan가 있습니다.

ssh-keyscan server.company.com >> ~/.ssh/known_hosts 

그러나 이것은 MitM 공격에 대한 유일한 보안 검사이므로 사용자와 서버간에 아무런 문제가 없다고 확신하지 못하면 서버에 연결하기 전에 수동으로 저장된 공개 키를 확인해야합니다.

sshpass -p password ssh [email protected] 

를하지만 암호가 일반 텍스트로 저장되어 있기 때문에 그것은 확실히 권장되지 않습니다

sshpass를 사용할 수있는 암호 삽입을 자동화합니다.

+0

작동하고있어 known_hosts 문제를 해결했습니다. 자동화를 완료하려면 프롬프트가 표시 될 때 비밀번호를 삽입 할 수 있어야합니다. –

+0

이것은 내가 얻은 것입니다 : echo password | ssh [email protected] stdin이 터미널이 아니기 때문에 의사 터미널이 할당되지 않습니다. server.company.com 비밀번호 : –

+0

비밀번호 입력에 대한 업데이트를 참조하십시오. – Jakuje