この記事では、Windows環境でSSHキーを正しく保存し、SFTPで接続する手順を解説する。
この記事の背景
オープンソースのデータをダウンロードする機会があったのだが、そのデータのダウンロードの手法がSSHキーでダウンロードする手法という、さっぱりやり方がわからなかった手順だったので記載する。用語や概念を正確に理解しているわけではないので、間違いがあったらご指摘を。
SSHキーとは?
SSHキー(Secure Shellキー)は、ネットワーク上での安全な通信を確立するために使用される暗号鍵。SSHキーを用いることで、パスワードを使わずにサーバーへのアクセスが可能になり、セキュリティが向上する。
手順
1. メモ帳を開く
スタートメニューから「メモ帳」を検索して開く。
2. SSHキーを貼り付ける
受け取ったSSHキーの内容をクリップボードにコピーし、メモ帳に貼り付ける。
3. ファイルを保存
メモ帳の「ファイル」メニューから「名前を付けて保存」を選択し、以下の設定で保存する。
-
保存場所:
C:\Users\[あなたのユーザー名]
-
ファイル名:
filename.key
- 保存する形式: 「すべてのファイル」
具体的な手順(イメージ図)
- メモ帳にSSHキーを貼り付けた状態:
-----BEGIN OPENSSH PRIVATE KEY----- (SHHキーの文字列) ... -----END OPENSSH PRIVATE KEY-----
- 「名前を付けて保存」ダイアログの設定:
-
場所:
C:\Users\[あなたのユーザー名]
-
ファイル名:
filename.key
-
場所:
注意点
メモ帳の「名前を付けて保存」ダイアログで「保存する形式」が「すべてのファイル」になっていることを確認し、拡張子が.txt
にならないように注意する。
ファイル権限の設定
Windowsでは、ファイルの権限を設定するためにコマンドプロンプトを管理者として実行し、以下のコマンドを使用する。
icacls C:\Users\[あなたのユーザー名]\filename.key /inheritance:r
icacls C:\Users\[あなたのユーザー名]\filename.key /grant:r %username%:F
SFTPクライアントの使用
SFTPクライアントとしてWinSCP(無料)やFileZilla(有料)を使用する方法がある。ここではWinSCPを例にとる。
WinSCPでの手順
-
WinSCPのダウンロードページからWinSCPをダウンロードしてインストールする。
-
WinSCPを起動し、新しいセッションを作成する。
-
接続情報を入力する:
-
ファイルプロトコル:
SFTP
-
ホスト名:
(ホスト名).blob.core.windows.net
- ユーザー名: `(ユーザー名)
-
秘密鍵ファイル:
C:\Users\[あなたのユーザー名]\filename.key
-
ファイルプロトコル:
-
「Advanced...」をクリックし、「SSH」→「Authentication」を選択して秘密鍵ファイルを指定する。
-
「OK」をクリックし、「Login」をクリックして接続する。
OpenSSH形式の鍵
「接続」ボタンを押すと、WinSCPがOpenSSH形式の鍵をサポートしておらず、PuTTY形式の鍵を必要とするというエラーがでた。OpenSSH形式の秘密鍵をPuTTY形式に変換する必要がある。「接続」ボタンを押せるページのまま、WinSCP上で、PuTTY形式に変更すれば、ダウンロードができた。
(PuTTYgenというツールを使用してPuTTY形式に変換するというオプションもあるが、それをおこなわなくてもできた。)
FileZillaでの手順
私はFileZillaではダウンロードしなかったので下記でできるか確認はしていないが、一応手順を記載する。
-
FileZillaのダウンロードページからFileZillaをダウンロードしてインストールする。
-
FileZillaを起動し、新しいサイトを設定する。
-
接続情報を入力する:
-
ホスト:
(ホスト名).blob.core.windows.net
-
プロトコル:
SFTP - SSH File Transfer Protocol
-
ログオンの種類:
Normal
-
ユーザー:
(ユーザー名)
-
ホスト:
-
FileZillaのメインメニューから「編集」→「設定」→「SFTP」と進み、「追加」をクリックして
C:\Users\[あなたのユーザー名]\filename.key
を追加する。 -
「接続」をクリックしてSFTPサーバーに接続する。
これでSFTPを使用して安全に接続し、データセットをダウンロードできるはず。SSHキーの呪文をみて「?」となった私のような方がもしいれば、この記事が助けになることを願う。