ここ最近知り得ました。Windows10に標準で「OpenSSHクライアント」が実装されている事を!(今更何を言ってるのって感じですね)
調べてみると遡ること約3年前、アップデート「April 2018 Update/1803」で実装された模様。
OpenSSHで利用できる各コマンド(scp、sftp、ssh、ssh-add、ssh-agent、ssh-keygen、ssh-keyscan)が使用可能となっておりました。
なぜ気付いたかと言いますと、Windows端末でバッチファイルからLinuxサーバにファイル転送を行いたく、SCPを使ってやろうかなとTera Termマクロの過去記事を検索していると「WindowsのSCP機能」がWEB上でヒットした次第です。
これまでLinuxサーバヘの接続は全て「Tera Term(テラターム)」を使用。またSCPも「Tera Termマクロ」を駆使して行っていたため、Windows10に標準でこんな素敵な機能の実装を見逃しておりました。
OpenSSHクライアントは標準でインストール。OpenSSHサーバはオプションでインストール可能みたいです。
ファイルの配置場所
ファイルの配置場所ですが以下のパスに配置されています。
C:\Windows\System32\OpenSSH\ssh.exe
実際に使用してみました!
ここでは、ソフトウェア バージョン(Windows10 Pro 64bit 21H2)の環境で実行した結果をご紹介しています。(他でも表示はほぼ一緒かと)
実験で利用していたKAGOYAのVPS(Rocky Linux8.5)に接続してみました。
稼働確認後に実行ユーザ&鍵の削除は行っていますので、セキュリティ的に画像を掲載するのはまずいんじゃないとかの指摘は無しでお願いします。
クライアント用の公開鍵/秘密鍵のペアを生成
まずは公開鍵&秘密鍵を作成してみたいと思います。
鍵を作成する場合、アルゴリズムを指定しない場合は「RSA」 が使用されます。今回は「ed25519」で公開/秘密鍵ペアを作成しました。
.pub ファイルが公開鍵、拡張子のないファイルが秘密鍵になります。
# ssh-keygen –t ed25519
サーバへ接続
接続先サーバに公開キーを登録していざ接続!(上記画像の下半分がサーバへの接続になります)
呆気なくリモートVPSサーバへ接続成功となりました!
既存のキーを使用し「Permissions」系のエラーが出た場合
既存のキーを再利用、またはWindowsで作成したキーを他のフォルダにコピーして利用する場合に以下のようなエラー(接続不可)が発生する場合があります。
こんなPermissions系のエラーが表示された場合です!
C:\Users\riki>ssh -i C:\data\id_ed25519 riki@111.222.33.44
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions for ‘C:\data\id_ed25519’ are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key “C:\data\id_ed25519”: bad permissions
riki@111.222.33.44: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
その場合は、下記ページの回避方法をお試しください。
作成中!
おわりに
Windows10にこんな便利な機能が装備されていたとは驚きでした。
また秘密鍵を安全に格納するための「ssh-agent」「ssh-add」を実装した方がいいかもですね。
次回は「SCP転送」について動作を確認したいと思います。