Windows 10や11で任意の場所に保存した鍵ファイルを指定してSSH接続する方法

Windows 10や11で任意の場所に保存した鍵ファイルを指定してSSH接続する方法

Windows 10や11には、OpenSSHが標準搭載されており、SSHクライアントとして利用している方もいらっしゃると思いますが、SSHコマンドで鍵認証を使ってリモートマシンに接続する場合、指定する鍵ファイルの保存場所には制限があり、保存場所によっては警告が表示され接続できないことがあります。

そこでここでは、Windows 10を例に、SSHコマンドで任意の場所に保存した鍵ファイルを使用してリモートマシンに接続できるようにする方法を紹介します。

Windows 10に標準搭載されたSSHコマンドの基本的な使い方
ここでは、Windows 10に標準搭載されたsshコマンドを利用して、リモートサーバーへ接続する手順や、鍵ファイルの生成手順などを紹介します。

動作環境

この記事は、以下の環境で実行した結果を基にしています。他のエディションやバージョンでは、動作結果が異なる場合があることをご了承ください。

ソフトウェアバージョン
Windows 10 Pro 64bit22H2

SSH接続できない原因は?

SSHコマンドで鍵認証を使ってリモートマシンに接続する場合、指定する鍵ファイルのデフォルトの保存場所は「C:¥Users\<ユーザー名>\.ssh」となっており、別の場所に保存した鍵ファイルを指定して接続しようとすると、以下のような警告が表示され接続できない場合があります。

@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions for 'E:\secret_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 "E:\secret_key": bad permissions
user01@192.168.0.100: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

これは、エラーにも記載されているように、鍵ファイルを保存しているフォルダーのアクセス許可設定が緩くセキュリティ的に問題があるためです。

そのため、任意のフォルダーに保存した鍵ファイルを指定してSSH接続するためには、鍵ファイルを保存するフォルダーのアクセス許可設定を変更して、現在サインインしているユーザーのみがアクセスできるようにする必要があります。

なお「C:¥Users\<ユーザー名>\」配下のフォルダーであれば、元々権限が制限されているのでアクセス許可設定を変更しなくても大丈夫です。

フォルダーのアクセス許可設定を変更する

鍵ファイルを保存するフォルダーのアクセス許可設定を変更する手順は、次のとおりです。

まず、鍵ファイルを保存するフォルダーを右クリックして「プロパティ」を選択します。

Windows 10や11で任意の場所に保存した鍵ファイルを指定してSSH接続する方法

プロパティ画面が表示されるので「セキュリティ」タブを選択して「詳細設定」をクリックします。

Windows 10や11で任意の場所に保存した鍵ファイルを指定してSSH接続する方法

セキュリティの詳細設定画面が表示されるので「継承の無効化」をクリックして「このオブジェクトから継承されたアクセス許可をすべて削除します」を選択します。

Windows 10や11で任意の場所に保存した鍵ファイルを指定してSSH接続する方法

Windows 10や11で任意の場所に保存した鍵ファイルを指定してSSH接続する方法

セキュリティの詳細設定画面に戻るので「追加」をクリックします。

Windows 10や11で任意の場所に保存した鍵ファイルを指定してSSH接続する方法

アクセス許可エントリ画面が表示されるので「プリンシパルの選択」をクリックします。

Windows 10や11で任意の場所に保存した鍵ファイルを指定してSSH接続する方法

ユーザーまたはグループの選択画面が表示されるので「詳細設定」をクリックします。

Windows 10や11で任意の場所に保存した鍵ファイルを指定してSSH接続する方法

画面が展開されるので「検索」をクリックします。

Windows 10や11で任意の場所に保存した鍵ファイルを指定してSSH接続する方法

検索結果欄にユーザーやグループの一覧が表示されるので、SSH接続時にサインインするユーザーを選択して「OK」をクリックします。

Windows 10や11で任意の場所に保存した鍵ファイルを指定してSSH接続する方法

「選択するオブジェクト名を入力してください」欄に選択したユーザーが表示されていることを確認して「OK」をクリックします。

Windows 10や11で任意の場所に保存した鍵ファイルを指定してSSH接続する方法

アクセス許可エントリ画面に戻るので「基本のアクセス許可」欄で「フルコントロール」と「これらのアクセス許可を、このコンテナーの中にあるオブジェクトやコンテナーのみに適用する」にチェックを入れて「OK」をクリックします。

Windows 10や11で任意の場所に保存した鍵ファイルを指定してSSH接続する方法

セキュリティの詳細設定画面に戻るので「子オブジェクトのアクセス許可エントリすべてを、このオブジェクトからの継承可能なアクセス許可エントリで置き換える」にチェックを入れて「OK」をクリックします。

Windows 10や11で任意の場所に保存した鍵ファイルを指定してSSH接続する方法

警告画面が表示されるので「はい」をクリックします。

Windows 10や11で任意の場所に保存した鍵ファイルを指定してSSH接続する方法

プロパティ画面に戻ったら、自分自身にフルコントロールのアクセス許可が設定されており、他のユーザーが存在しない状態になっていることを確認して「OK」をクリックします。

Windows 10や11で任意の場所に保存した鍵ファイルを指定してSSH接続する方法

以上で、SSHコマンドの鍵認証で設定したフォルダーに保存した鍵ファイルを指定して接続できるはずです。

あとがき

鍵ファイルは重要なファイルのため、デフォルト以外の自分が管理しやすい場所に保存しておきたいという方も多いのではないでしょうか。そのようなときは、ここで紹介した方法が役立つでしょう。