Windows 10は「April 2018 Update(バージョン1803)」で、SSHにネイティブで対応し、これまでリモートサーバーなどにSSH接続する場合に必須だったサードパーティーのSSHクライアントソフト(Puttyなど)がなくても、標準搭載コマンドでSSH接続できるようになりました。
そこでここでは、Windows 10に標準搭載されたsshコマンドを利用して、リモートサーバーへ接続する手順や、鍵ファイルの生成手順などを紹介します。
なお、Linux環境のsshコマンドと使い方はほぼ同じです。
SSHで利用できる各コマンド(scp, sftp, ssh, ssh-add, ssh-agent, ssh-keygen, ssh-keyscan)の詳しい使い方を知りたい場合は、OpenSSHのマニュアルの参照をおすすめします。

目次
動作環境
この記事は、以下の環境で実行した結果を基にしています。他のエディションやバージョンでは、動作結果が異なる場合があることをご了承ください。
ソフトウェア | バージョン |
---|---|
Windows 10 Pro 64bit | 21H2 |
OpenSSHファイル群
OpenSSHファイル群は、以下のフォルダーに配置されています。
PS C:\> Get-ChildItem C:\Windows\System32\OpenSSH
ディレクトリ: C:\Windows\System32\OpenSSH
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2021/10/06 22:25 307712 scp.exe
-a---- 2021/10/06 22:25 374272 sftp.exe
-a---- 2021/10/06 22:25 481280 ssh-add.exe
-a---- 2021/10/06 22:25 382976 ssh-agent.exe
-a---- 2021/10/06 22:25 662016 ssh-keygen.exe
-a---- 2021/10/06 22:25 557568 ssh-keyscan.exe
-a---- 2021/10/06 22:25 946176 ssh.exe
リモートサーバーへSSH接続するには
標準搭載されたSSHコマンドを使ってリモートサーバーへSSH接続する手順は、コマンドプロンプトもしくはPowerShellを起動し、以下のいずれかのコマンドを実行します。
以下は「tarou」というユーザー名で「remote-server」に接続する場合の例です。
PS C:\> ssh tarou@remote-server
PS C:\> ssh -l tarou remote-server
接続を終了するときは「exit」と入力します。
なお、リモートサーバに初めて接続したときのサーバーの鍵は「%UserProfile%.sshknown_hosts」に保存されます。
鍵ペア作成~鍵認証での接続
公開鍵認証を利用する場合の鍵ペアは、ssh-keygenコマンドを使って生成します。
PS C:\> ssh-keygen
秘密鍵のパスフレーズは、必要に応じて設定します。
Generating public/private rsa key pair.Enter file in which to save the key (C:\Users\hoge\.ssh\id_rsa):
生成された鍵ペア(秘密鍵と公開鍵)は、デフォルトでユーザープロファイル内の「.ssh」フォルダーに保存され、秘密鍵ファイルはデフォルト以外の場所に保存すると、リモートサーバーへの接続時に使用できない場合があるのでご注意ください。
あとは、生成された公開鍵の内容を、SSHサーバーへ接続する時に使用するユーザーの「~/.ssh/authorized_keys」に追記します。
これで、次のコマンドでSSHサーバーに鍵認証で接続できるようになります。
PS C:\> ssh -i "C:\Users\hoge\.ssh\id_rsa" -l tarou remote-server
あとがき
サードパーティのSSHクラアントソフトと比べると機能的にはシンプルですが、Windows 10の標準機能として利用できるようになったのはうれしい限りです。
