環境:
VM A : パスワードなしでアクセスしたいマシン
VM B : マシンからパスワードなしで VM A にアクセスしたい
問題の説明:
VM B から VM A にパスワードなしでアクセスしたいので、まず VM B の公開鍵を VM A に注入したいのですが、ssh-copy を使用する場合はやはりパスワードが必要なので、マウントでファイルを注入しようとします。
手順:
- VM A を LiveCD から起動する
- VM A のルート ディスク (OS を含む) をマウントします。
- ${mount_point}/root/.ssh/ の下に、authorized_keys ファイルを作成します。
- VM B の公開鍵を authorized_keys ファイルに分類します
- VM A を停止し、LiveCD を削除してから、VM A を再起動します
コマンドで 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にアクセスできます
質問:
authorized_keys と authorized_keys_bak のプロパティはすべて同じですが、一方が機能し、一方が機能しないのはなぜですか?
私は、LiveCD からマウントしないでファイルを作成した場合にのみ、authorized_keys が機能しますか?