2017-03-09 77 views
1

我想創建一個腳本來插入一個新的連接到我的known_hosts文件。我可以自動連接ssh嗎? ssh [email protected]

當我想要一個新的服務器添加到known_hosts文件我手動使用這個命令:

ssh [email protected] 

然後我得到這樣的回報:

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]的密碼:

打印密碼後 - 我連接到遠程服務器。

下一次我想連接,我不需要再次插入密碼。

有沒有辦法使用shell腳本自動化這個過程? 我試過,沒有運氣所有這些選項:

yes | ssh [email protected] 

echo yes | ssh [email protected] 

但沒有任何工程

回答

1

我想創建一個腳本插入到我的known_hosts文件一個新的連接...

ssh-keyscan那個:

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

但請注意,這是針對MitM攻擊的唯一安全檢查,除非您確定您和服務器之間沒有任何問題,否則應在連接到服務器之前手動檢查存儲的公鑰。

要自動插入密碼,你可以用sshpass

sshpass -p password ssh [email protected] 

但肯定是不建議,因爲該密碼存儲在明文。

+0

這是工作,它解決了known_hosts問題, 爲了完成自動化我需要能夠在我得到提示時插入密碼。 –

+0

這就是我得到的: echo password | ssh [email protected] 由於stdin不是終端,所以不會分配僞終端。 server.company.com密碼: –

+0

查看有關輸入密碼的更新。 – Jakuje