web-dev-qa-db-ja.com

SSH:プライベートネットワークで、ssh公開鍵を使用せずにソースマシンからリモートマシンにアクセスする方法

EC2 ubuntuインスタンスにアクセスするAWS codebuildセットアップがあり、両方が同じVPCとプライベートサブネットにあります。 SSHを使用してコードビルドからインスタンスにコマンドを実行したいが、リモートインスタンスでコマンドを実行しようとしているときにエラーが発生する:

$ ssh -o 'PubkeyAuthentication no' [email protected] uname
Host key verification failed.

また、.pemファイルを作成して、公開鍵を新しいpemファイルに貼り付け、許可を変更して使用しました。しかし、成功しませんでした。

$ssh -i "remote-instance.pem" [email protected] uname
Host key verification failed.

いくつかのオプションで同じことを達成することは可能ですか?

6
CodeQuestor

初めて知っているように、リモートホストにsshすると、リモートホストキー~/.ssh/known_hostsに保存するかどうかを尋ねられます。その後、リモートホストにアクセスするたびに、sshは受信したホストキー~/.ssh/known_hostsに対して検証します。

ただし、sshCodeBuildまたはその他の非インタラクティブなセットアップで実行されている場合、リモートキーを受け入れるかどうかを確認できません(誰も非対話型セッションで要求することはありません)、安全な側にいるために失敗しますホストキーの検証に失敗しました

それを修正する方法は2つあります。

  1. より安全ですは、UbuntuサーバーのホストキーをCodeBuildに提供し、known_hostsファイルに保存して、ssh確認してください。正しい所有権と権限で正しいパスにあることを確認してください。

  2. 安全性が低いは、チェックを無効にします。

    ssh -o StrictHostKeyChecking=no {your-ubuntu-server}
    

それが役に立てば幸い:)

11
MLu

デフォルトで試行されるPubkeyAuthenticationが必要なため、「-o PubkeyAuthentication = no」を指定しないでください。 「-i」で参照されるpemファイルは、公開鍵ではなく秘密鍵でなければなりません。公開鍵は、ubuntuサーバーにすでに配置されています。

1
sean