2015-03-31 40 views
7

當我只運行這些命令時,我遇到了一個問題。scp命令傳遞yes參數

遠程服務器想要通過yes在RSA文件中添加密鑰,因爲首次與scp建立連接。

命令給出如下

#!/bin/bash 

scp -P58222 [email protected]:/root/K /N 
/usr/bin/expect -c 'expect "\n" { expect "Are you sure you want to continue connecting (yes/no)?" }' 
send "yes\r" 
expect "$ " 
send "exit\r" 

其實我有傳是在我的劇本一邊詢問

主機的真實性「IP地址(IP地址)」不能成立。

RSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx. 
Are you sure you want to continue connecting (yes/no)? 

你確定要繼續連接(是/否)?

我該如何擺脫這個問題?

​​

它仍然要求。

+2

你可以傳遞參數給ssh/scp,告訴它不要問這個問題;不需要使用'expect'來編寫答案。 – 2015-03-31 16:56:20

+1

這就是說 - 哪個*特定*問題是你告訴它自動回答是?例如,如果這是一個未知的主機關鍵問題,那將會有所幫助。 – 2015-03-31 16:57:20

+0

具體而言,'scp -q'啓用安靜模式,無需請求確認。 – 2015-03-31 17:01:54

回答

7
scp -o StrictHostKeyChecking=no [email protected]:/root/K 

很明顯,這不是一個非常安全的解決方案。儘管如此,在你不關心中間人的情況下,你可以用一個鏡頭來工作。

+0

其實, 連接建立時顯示 連接無法建立,因爲遠程主機信息沒有添加 當我們鍵入yes時,顯示主機信息添加成功。 – 2015-03-31 17:05:48

+0

我建議在'-o'選項下查看'man scp'以獲取ssh/scp選項的完整列表。根據您的設置,您可能需要另一個選項標誌集。 – economy 2015-03-31 17:09:33

+0

我檢查它是有幫助的,但現在測試..! – 2015-03-31 17:25:46

2

對於我來說,這個工程:

yes | scp -r /opt/MyFiles [email protected]<MyNewServerIP>:/opt/MyFiles 

問候。 =)

+0

這似乎對我有用: – 2018-02-07 03:37:58