質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

Q&A

解決済

1回答

3336閲覧

PuTTY 公開鍵認証によるSSH接続で認証エラー

退会済みユーザー

退会済みユーザー

総合スコア0

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

0グッド

0クリップ

投稿2019/06/30 01:26

やりたいこと

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 のほうの公開鍵を復元したいと思っています。
自分でも調べるつもりですが、ご教授いただければ幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

検索すると、解決策がすぐにヒットしました。
以下のサイトをヒントに 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 // 最後は改行を入れる
最後は改行で空白行

手作業のコピペで、調べれば、もっと気の利いたコマンドがあるかもしれませんが、
とりあえず私の環境では、これでエラーもなくなり、公開鍵認証によるログインができるようになりました。

投稿2019/06/30 04:45

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問