Linux

SSH:在私有網路中如何在不使用 ssh 公鑰的情況下從源機器訪問遠端機器

  • February 6, 2020

我有想要訪問 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

但是,當sshCodeBuild或其他一些非互動式設置中執行時,它無法詢問是否接受遠端密鑰(因為在非互動式會話中沒有人詢問)並且為了安全起見,它會因主機密鑰驗證而失敗失敗的

你有兩個選擇如何解決它:

  1. 更安全的是向您的 CodeBuild 提供 Ubuntu 伺服器的主機密鑰並將其儲存到可以驗證的known_hosts文件中。ssh確保它位於正確的路徑中,並具有正確的所有權和權限。
  2. 不太安全的是禁用檢查:
ssh -o StrictHostKeyChecking=no {your-ubuntu-server}

希望有幫助:)

引用自:https://serverfault.com/questions/1001666