Windows10:ネイティブ動作するOpenSSHクライアントを使う

Windows10は「April 2018 Update」でやっとSSHにネイティブで対応しました。これで、SSHサーバへ接続するためにSSHクライアントソフト(Puttyなど)をインストールする必要がなくなりました。

ここでは「Windows PowerShell」から、sshコマンドを利用してリモートサーバーへ接続する手順や、鍵ファイルの生成手順などを紹介します。利用方法はLinuxと変わらない感じです。

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

OpenSSH: Manual Pages

OpenSSHファイル群

最新のWindows10(バージョン1803)には、OpenSSHクライアントとして「OpenSSH for Windows 7.6p1」が標準搭載されています。なお、OpenSSHサーバーは、別途インストールが必要のようです。

OpenSSHのコマンドの実体は、以下のフォルダーに配置されています。

Get-ChildItem C:\Windows\System32\OpenSSH\

ディレクトリ: C:\Windows\System32\OpenSSH

Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2018/03/11 3:20 343552 scp.exe
-a---- 2018/03/11 3:20 408064 sftp.exe
-a---- 2018/03/11 3:20 531968 ssh-add.exe
-a---- 2018/03/11 3:20 495616 ssh-agent.exe
-a---- 2018/03/11 3:20 657920 ssh-keygen.exe
-a---- 2018/03/11 3:20 594944 ssh-keyscan.exe
-a---- 2018/03/11 3:20 894464 ssh.exe

鍵ファイルなどの関連ファイルは、フォルダー「%UserProfile%\.ssh」配下に配置します。

接続手順

「Windows PowerShell」を起動し、以下のいずれかのコマンドでリモートサーバーへ接続します。なお、SSHサーバに初めて接続したときの接続先サーバーの鍵は「%UserProfile%\.ssh\known_hosts」に保存されます。

以下は「tarou」というユーザー名で「remote-server」に接続する場合の例です。

ssh tarou@remote-server
ssh -l tarou remote-server

PowerShell画面のイケてない感じをのぞけば、特に操作に違和感は感じませんでした。

作業終了時は「exit」を入力します。すると、PowerShellのプロンプトに戻ります。

鍵ペア作成~鍵認証での接続

公開鍵認証を利用する場合の鍵ペアは「Windows PowerShell」を起動し「ssh-keygen」コマンドを使って生成します。

cd ~\.ssh
ssh-keygen

秘密鍵のパスフレーズを使用するように促されるので、必要に応じて設定します。

Generating public/private ed25519 key pair.Enter file in which to save the key (C:\Users\hoge\.ssh\id_ed25519):

鍵ペアは、カレントディレクトリに生成されます。

C:\Users\hoge\.ssh\id_ed25519 ←秘密鍵
C:\Users\hoge\.ssh\id_ed25519.pub ←公開鍵

Memo

秘密鍵ファイルを「%UserProfile%\.ssh」以外のフォルダーに保存した場合、鍵ファイルのアクセス権によっては、リモートサーバーへの接続時に使用できない場合があります。

公開鍵ファイル(~\.ssh\id_ed25519.pub)は、リモートサーバーにコピーして、接続時に使用するユーザーの「~/.ssh/authorized_keys」に追記します。

これで、次のコマンドでリモートサーバーに鍵認証で接続できるようになります。

ssh -i "C:\Users\hoge\.ssh\id_ed25519" -l tarou remote-server
Memo

よりセキュリティを強化する場合は、SSHサーバー側の設定で「rootでのログインを無効化」や「パスワード認証を無効化」などを設定しますが、ここでは手順は割愛させていただきます。

まとめ

サードパーティのSSHクラアントソフトと比べると機能的にはシンプルですが、Windows10の標準機能として利用できるようになったのはうれしい限りです。PowerShell画面のフォントや色設定などをカスタマイズすれば、それなりに使えそうな感じです。

スポンサーリンク