2

次に、クライアントマシンからスクリプトを実行して、ホストマシン上の仮想マシンゲストにSSHで接続し、シェルコマンドの実行を開始します。パスワードの入力を求められたくありません。

それで、最初に私はホストに接続するためにそれをしようとします。.sshフォルダー内のファイルid_rsa.pubを、クライアントから.sshフォルダー内のauthorized_keysというホストのファイルにコピーします。次に、「ssh root @ hostname」を実行すると、正常に動作し、パスワードを入力する必要がありません(クライアントのアカウントはrootではないことに注意してください)。

次に、ホスト内の仮想マシンゲストに対して同じことを試みます。同じファイルをゲストにコピーしました。オプション「-netuser、vlan = 0、hostfwd = tcp :: 5555-:22」を指定してqemuを使用してゲストを開始しました。これにより、ホスト5555ポートへのリクエストがゲストの22ポートに転送されます。次に、クライアントで「ssh -p 5555root@hostname」を実行しましたが失敗します。ホストのRSAキーが変更されたかなどが表示されます...ゲストのアカウントもrootであり、Puttyを使用してホストの5555ポートに接続することでゲストにSSH接続できることに注意してください。また、ファイルのアクセス許可も適切に処理されていると思います。

誰かが手がかりを持っていますか:>

4

1 に答える 1

3

はい、これは正しい動作です。

初めてホストシステムに接続するとき、クライアントマシンのsshは、指紋bla-bla-blaを備えたマシンが本当に接続したいマシンであるかどうかを尋ねます。「yes」と応答すると、クライアントマシンでsshがホスト名、IP、およびファイル〜/ .ssh/known_hostsのフィンガープリントを記憶しました。次に、後続のすべての接続中に、指紋が変更されていないことを確認します。変更は、認証プロセスに注意が必要であることを示しているためです。不一致にはいくつかの正当な理由が考えられます。

  • リモートホストにsshdを再インストールしました。
  • ホストはDHCPを使用してIPを取得し、IPが変更されました。

指紋が変更されるべきではないことが正確にわかっている場合は、別のシステムに入ろうとしていることを示しています。

このメカニズムは、ログインする予定のシステムに確実にログインすることを目的としています。

あなたの場合、最初にポート22でIP abcdでシステムにログインします。次に、ポート5555で同じIPabcdでログインしようとします。このポートの背後に異なるフィンガープリントを持つVMがあります。だからsshは文句を言う。

問題の解決策は、ホストシステムにログインしてから、このリモートシェルセッションからVMにログインすることです。また、この「リモート」接続用に別の公開/秘密キーのペアを生成することをお勧めします。したがって、ホストに保持されている秘密鍵が危険にさらされても、ワークステーションに保持されている秘密鍵は有効なままです。

于 2012-09-24T22:07:44.097 に答える