Linux
SSH:在私有網路中如何在不使用 ssh 公鑰的情況下從源機器訪問遠端機器
我有想要訪問 EC2 ubuntu 實例的 AWS 程式碼建構設置,它們都在同一個 VPC 和私有子網中。想要使用 SSH 執行從 codebuild 到實例的命令,但在嘗試在遠端實例上執行命令時出現以下錯誤:
$ ssh -o 'PubkeyAuthentication no' ubuntu@X.X.X.X uname Host key verification failed.
我還嘗試創建 .pem 文件並將公鑰粘貼到新的 pem 文件中,更改其權限並使用它。但沒有成功。
$ssh -i "remote-instance.pem" ubuntu@X.X.X.X uname Host key verification failed.
是否可以通過某些選項實現相同的目標?
如您所知,當您第一次
ssh
訪問遠端主機時,它會詢問您是否要將遠端主機密鑰儲存到~/.ssh/known_hosts
. 之後每次訪問遠端主機時ssh
都會根據.~/.ssh/known_hosts
但是,當
ssh
在CodeBuild或其他一些非互動式設置中執行時,它無法詢問是否接受遠端密鑰(因為在非互動式會話中沒有人詢問)並且為了安全起見,它會因主機密鑰驗證而失敗失敗的你有兩個選擇如何解決它:
- 更安全的是向您的 CodeBuild 提供 Ubuntu 伺服器的主機密鑰並將其儲存到可以驗證的
known_hosts
文件中。ssh
確保它位於正確的路徑中,並具有正確的所有權和權限。- 不太安全的是禁用檢查:
ssh -o StrictHostKeyChecking=no {your-ubuntu-server}
希望有幫助:)