質問: ### やりたいこと CentOS6(ホストOS Windows10) の ssh時のログイン方法をパスワード認証方式から公開鍵認証方式に変更したい、と思いました。現在、ssh ログインには PuTTY を使用しています。 ### 試したこと 下記のサイトを参考に設定してみました。 https://www.websec-room.com/2014/01/18/1647 キーペアの作成(PuTTY にパスワードでログインした状態で) $ ssh-keygen -t rsa $ cd .ssh/ $ ls // 結果、id_rsa id_rsa.pub authorized_keys $ mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys $ chmod 600 ~/.ssh/authorized_keys 公開鍵認証のログイン設定 sudo vi /etc/ssh/sshd_config PubkeyAuthentication yes // ファイルの編集 sudo service sshd restart exit 秘密鍵を WinSCP を使用してダウンロード id_rsa の秘密鍵をホストOS へダウンロード PuTTYgen による PuTTY 用秘密鍵の作成 PuTTYjp フォルダにある puttygen.exe をダブルクリックして PuTTYgen を起動 画面右下のファイルの種類を「All Files」にした状態で、 [Load] をクリックして秘密鍵(id_rsa)をロード [Save private key] をクリックして、PuTTY 用の秘密鍵を「id_rsa.ppk」で保存 PuTTY による公開鍵認証による SSH ログイン PuTTY を起動してホスト名とポート番号を設定 画面左側のメニューから、「接続」->「SSH」->「認証」を選択 一番下の右側にある「参照」をクリック 秘密鍵(id_rsa.ppk)がある場所を選択し、「開く」をクリック 最後に公開鍵認証でのみログインできるように設定 (つながらなくなると困るので、まだやってませんが...) sudo vi /etc/ssh/sshd_config PasswordAuthentication no // ファイルの編集 sudo service sshd restart ### 問題点 vagrant up すると、default: Warning: Authentication failure. Retrying... と繰り返し表示され、タイムアウトになってしまいます。 けれども、PuTTY での公開鍵認証はうまくいっているようで、きちんとログインできる状態です。 調べてみると、思い当たる原因が載っているサイトが見つかりました。 https://qiita.com/megane42/items/1d8ae7444d8c1b10bbd7 vagrant のほうでも内部的に「公開鍵認証による VM への SSH 接続」を行っているとのことで、 その公開鍵を消してはいけないようです。 そういえば、キーペアの作成のときにすでに authorized_keys があったような... 作業手順を見直してみると、やっぱり mv で見事に消してしまっています。 mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys ではなく cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys と追記しなければいけなかったみたいです。あちゃー、って感じです。 最悪の場合は、一からやり直すつもりですが、 できれば、今のまま vagrant のほうの公開鍵を復元したいと思っています。 自分でも調べるつもりですが、ご教授いただければ幸いです。
回答: 検索すると、解決策がすぐにヒットしました。 以下のサイトをヒントに vagrant のほうの公開鍵を作成 https://qiita.com/Esfahan/items/e5f707dc6d116c2cc751 一応手順を書いておきます。 秘密鍵がある場所を次のコマンドで確認 PowerShell // vagrant up して、PuTTY に接続した状態で、 vagrant ssh-config 結果、IdentityFile C:/Users/ユーザー名/.vagrant.d/insecure_private_key 公開鍵を生成 // 生成場所は Vagrantfile がある場所 ssh-keygen -yf C:/Users/ユーザー名/.vagrant.d/insecure_private_key > public_key あとは、public_key の中身をコピーして .ssh/authorized_keys に追記 PuTTY vi .ssh/authorized_keys 中身はこんな感じ // 公開鍵の途中に改行を入れない 公開鍵1hogehoge.....hoge末尾== vagrant@localhost.localdomain 公開鍵2hogehoge.....hoge末尾== vagrant@localhost.localdomain // 最後は改行を入れる 最後は改行で空白行 手作業のコピペで、調べれば、もっと気の利いたコマンドがあるかもしれませんが、 とりあえず私の環境では、これでエラーもなくなり、公開鍵認証によるログインができるようになりました。