Windows 10に標準搭載のSSHコマンドの基本的な使い方

Windows 10に標準搭載のSSHコマンドの基本的な使い方

Windows 10は「April 2018 Update(バージョン1803)」で、SSHにネイティブで対応し、これまでリモートサーバーなどにSSH接続する場合に必須だったサードパーティーのSSHクライアントソフト(Puttyなど)がなくても、標準搭載コマンドでSSH接続できるようになりました。

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

なお、Linux環境のsshコマンドと使い方はほぼ同じです。

Memo

SSHで利用できる各コマンド(scp, sftp, ssh, ssh-add, ssh-agent, ssh-keygen, ssh-keyscan)の詳しい使い方を知りたい場合は、OpenSSHのマニュアルの参照をおすすめします。

OpenSSH: Manual Pages

Windows 10や11で任意の場所に保存した鍵ファイルを指定してSSH接続する方法
ここでは、Windows 10や11で、SSHの鍵認証接続時に使用する鍵ファイルをデフォルト以外の任意の場所に保存する方法を紹介します。

動作環境

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

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

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の標準機能として利用できるようになったのはうれしい限りです。

Windows 10でtar/curlコマンドが使えるようになった。
ここでは、Windows 10バージョン1803から標準コマンドとして搭載された「tar」と「curl」について紹介します。