2011-10-03 26 views
1

當您使用pscp將文件發送到單臺計算機時不會有什麼大不了,因爲您將得到一次rsa指紋提示,而不會再次發生。但如果你想連接到200臺機器,你絕對不想輸入「是」200次....使用pscp自動接受rsa指紋

我在Windows機器上使用pscp,我真的不關心指紋,我只想接受它。我正在使用亞馬遜EC2,每次重新啓動機器時都會更改指紋....

如果有一種方法可以避免使用pscp或其他工具,請告訴我!

謝謝!

+0

可能的重複http://stackoverflow.com/questions/13598996/putty-wont-cache-the-keys-to-access-a-server-when-run-script-in-hudson – Clay

回答

1

如果您只需重新啓動或停止/啓動實例,則主機ssh密鑰指紋不應更改。如果是這樣,那麼實例/ AMI配置不正確或其他(惡意?)正在進行。

良好的EC2 AMI設置爲在第一次啓動時創建隨機主機ssh密鑰。最流行的AMI將輸出指紋到控制檯輸出。爲了安全起見,您應該通過EC2 API(命令行工具或控制檯)請求實例控制檯輸出,並將其與ssh提示符中的指紋進行比較。

通過說你「不關心指紋」,你說你不關心加密自己和實例之間的流量,並且你和實例之間的任何人都可以看到這樣的通信。中間人甚至有可能接管ssh會話並獲得控制實例的權限。

使用Linux上的ssh,您可以使用命令行或配置文件選項關閉ssh指紋檢查。我不願意公佈如何做到這一點,因爲它不被推薦,並嚴重降低了連接的安全性。

更好的選擇是讓您的實例將自己的主機ssh密鑰設置爲您知道的祕密值。您可以將主機ssh密鑰的公共端保存在已知的主機文件中。這樣,您的流量就會加密並且安全無虞,並且在連接到您自己的機器時,您不必連續回答關於指紋的提示。

4

我不完全同意最後一個答案。第一次接受SSH密鑰時,您對遠程主機一無所知,所以自動接受它並沒有什麼區別。

我會做什麼是自動接受第一次連接到主機的密鑰。我已經閱讀過類似yes yes | ssh [email protected]這樣的作品,但它沒有,因爲SSH不會從stdin讀取,而是從終端讀取。

什麼工作是傳遞,您連接第一次,下面的SSH選項(它同時適用於SCP和SSH:

scp -oStrictHostKeyChecking=no [email protected]:file1 [email protected]:file2 

此命令會增加你運行它的關鍵在第一時間,但是如果像Eric所說的那樣,一旦你接受了密鑰就這麼做是危險的(如果我是你,那麼我會將它添加到一個腳本中,該腳本在~/.ssh/known_hosts中檢查過,如果該主機已經有一行在這種情況下,我不會添加該選項,另一方面,如果沒有行,我會這麼做;)。

如果你正在處理的known_hosts的加密版本,嘗試用

ssh-keygen -F hostname 

下面是我實際使用的東西(函數接受以下參數:用戶,主機,SOURCE_FILE)

deployToServer() { 
    echo "Deployng to [email protected]$2 from $3" 
    if [ -z "`cat ~/.ssh/known_hosts | grep $2`" ] && [ -z "`ssh-keygen -F $2`" ] 
    then 
     echo 'Auto accepting SSH key' 
     scp -oStrictHostKeyChecking=no $3* [email protected]$2:. 
    else 
     scp $3* [email protected]$2:. 
    fi 
} 

希望對您有所幫助;)

+0

它不適用於pscp在Windows上,這是一個真正的恥辱! TBH我已經驗證了指紋,並希望在命令行中指定它,不一定忽略它,但請說出接受這一個...爲什麼我不能做這個基本的事情? – Dan

+0

錯誤:首次接受SSH密鑰時(例如從EC2控制檯輸出),您確實知道遠程主機,並且自動接受密鑰確實會產生很大的安全差異。 –

+0

@Dan _It在Windows上不適用於pscp,這是一種真正的恥辱!_真正的恥辱是使用Windows。 – user454322

0

我在它創建了以下命令的期望文件:

產卵的ssh -i ec2Key.pem Ubuntu的@ ec2IpAddress 期望「?你確定要繼續連接(是/否)」 {發送「是\ n」} 交互

我可以在沒有禁用rsa指紋的情況下進入ec2控制檯。我的機器已添加到此ec2的已知主機中。

我希望它有幫助。