【Vagrant】ssh接続時の「UNPROTECTED PRIVATE KEY FILE!」の対処方法


この記事はプロモーションを含みます。

Vagrantで作成したゲストマシンにssh接続した際に出力される「UNPROTECTED PRIVATE KEY FILE!」の対処方法を解説します。

事象

Vagrant環境で作成したゲストマシンに接続する際の方法として、「ssh」コマンドがあります。
sshコマンドで接続する際に鍵ファイル(秘密鍵やプライベートキーファイルとも呼ばれるようです)を指定しますが、その鍵ファイルが以下のエラーにより、読み込めない場合があるため、今回はその対処方法を説明します。
また、Vagrantの実行環境としては、Windows環境となります。

C:\VM\Vagrant\VMwareTest01>ssh -i ./insecure_private_key vagrant@192.168.254.200
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions for './insecure_private_key' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "./insecure_private_key": bad permissions
vagrant@192.168.254.200: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

Vagrant環境に接続する際に使用するターミナルとして、
「コマンドプロンプト」や「PowerShell」がありますが、どちらでもこの事象が発生するようです。
本記事では、コマンドプロンプトを使用して作業しています。

原因と対処方法

ここでは、原因と対処方法について説明します。

まず、原因ですが、鍵ファイルの権限設定に問題があります。
鍵ファイルは全てのユーザーが読み込めるような設定なっている場合はエラーとなるようです。

よくある権限周りのエラーでは、
権限が不足しているためにエラーとなる場合が多いですが、
今回は、権限が多すぎるからエラーとなるというところに注意が必要ですね。

なので、対処方法としては、
鍵ファイルの権限設定を見直し、権限を強くする(読み込める範囲を狭める)ということになります。

ここで、問題があります。
Linux環境であれば、chmodコマンドなどで、権限を「600」などに設定すればよいのですが、
Windows環境の場合は、権限設定が複雑で簡単に設定出来ません。

しかし、簡単な対処方法があり、それは個人ユーザーのフォルダに鍵ファイルを配置することです。
個人ユーザーのフォルダは、権限がそのユーザーごとに設定されているため、
そこに鍵ファイルを格納することで、権限を強くした状態にすることが出来ます。

個人ユーザーのフォルダとは、以下のようなパスにあるフォルダです。

C:\Users\<ユーザー名>\Documents

では、鍵ファイルの格納フォルダを変更した状態で、sshコマンドを実行してみます。

C:\VM\Vagrant\VMwareTest01>ssh -i "C:\Users\<ユーザー名>\Documents\insecure_private_key" vagrant@192.168.254.200
[vagrant@localhost ~]$

はい、無事に接続することが出来ました。

記事は以上となります。

コメント

タイトルとURLをコピーしました