0

環境:

VM A : パスワードなしでアクセスしたいマシン

VM B : マシンからパスワードなしで VM A にアクセスしたい

問題の説明:

VM B から VM A にパスワードなしでアクセスしたいので、まず VM B の公開鍵を VM A に注入したいのですが、ssh-copy を使用する場合はやはりパスワードが必要なので、マウントでファイルを注入しようとします。

手順:

  1. VM A を LiveCD から起動する
  2. VM A のルート ディスク (OS を含む) をマウントします。
  3. ${mount_point}/root/.ssh/ の下に、authorized_keys ファイルを作成します。
  4. VM B の公開鍵を authorized_keys ファイルに分類します
  5. VM A を停止し、LiveCD を削除してから、VM A を再起動します
  6. コマンドで VM B から VM A にアクセスする

    ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o PasswordAuthentication=no root@9.112.224.130

結果:

debug2: we did not send a packet, disable method
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /root/.ssh/identity
debug3: no such identity: /root/.ssh/identity
debug1: Offering public key: /root/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug3: Wrote 368 bytes for a total of 1645
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Trying private key: /root/.ssh/id_dsa
debug3: no such identity: /root/.ssh/id_dsa
debug2: we did not send a packet, disable method
debug1: No more authentication methods to try.
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).

しかし、次のコマンドを実行した後、機能します(ファイルモードはすべて600であり、diffコマンドとの違いはありません)

mv authorized_keys authorized_keys_bak
cp authorized_keys_bak authorized_keys

もう一度挿入してみますが、今回はLiveCDから開始する前に空のauthorized_keysファイルを作成し、ステップ3をスキップします。他のステップはすべて同じです。今回はVM BがパスワードなしでVM Aにアクセスできます

質問:

  1. authorized_keys と authorized_keys_bak のプロパティはすべて同じですが、一方が機能し、一方が機能しないのはなぜですか?

  2. 私は、LiveCD からマウントしないでファイルを作成した場合にのみ、authorized_keys が機能しますか?

4

1 に答える 1

0

ssh-copy-id は、キーをリモート システムに挿入するために一度パスワードを要求します。

あなたが示したログは、ssh クライアントからのものです。ssh サーバーがユーザーの資格情報を確認できない理由を確認するには、ssh サーバーのログも必要です。

クライアント ログから、公開鍵ベース (パスワードなし) の認証を試みましたが、失敗しました (サーバーによって拒否されたことを意味します) と言えます。したがって、残りの方法は「キーボードインタラクティブ」(サーバーでサポートされています)ですが、クライアントはそれをサポートしていないため、試行する認証方法がないため失敗しました。

作業シーンと非作業シーンについて、次のことも確認できますか

クライアント上の認証に使用されるクライアントとサーバー上のユーザーの公開鍵を確認します->サーバー上の/users//.ssh/id_rsa.pub->/etc/ssh/authorized_keys(ユーザー名のエントリを確認してください)

于 2014-09-23T05:21:49.647 に答える