Windows 10の標準SSHクライアントの使い方|OpenSSHの有効化からSCPでのファイル転送まで
Windows 10およびWindows Server 2019には、標準でSSHクライアントが搭載されました。ssh.exeを使えば、PuTTYやMTPuTTYなどのサードパーティ製SSHクライアントに頼ることなく、Linux/UNIXサーバーやVMware ESXiホストなどの機器へ安全に接続できます。WindowsネイティブのSSHクライアントはOpenSSHの移植版をベースとしており、Windows 10ビルド1809以降では標準でプリインストールされています。
Windows 10でOpenSSHクライアントを有効化(インストール)する方法
OpenSSHクライアントは、Windows 10の機能オンデマンド(Features on Demand)に含まれています(RSATと同じ仕組みです)。Windows Server 2019およびWindows 10ビルド1809以降では、SSHクライアントはデフォルトでインストールされています。
まず、SSHクライアントがインストール済みかどうかを確認しましょう。
Get-WindowsCapability -Online | ? Name -like 'OpenSSH.Client*'

この例では、OpenSSHクライアントはインストール済みです(State: Installed)。
もしインストールされていない場合(State: NotPresent)は、以下のいずれかの方法でインストールできます。
- PowerShellコマンド:
Add-WindowsCapability -Online -Name OpenSSH.Client* - DISMを使用:
dism /Online /Add-Capability /CapabilityName:OpenSSH.Client~~~~0.0.1.0 - 「設定」→「アプリ」→「オプション機能」→「機能の追加」から。一覧からOpenSSH クライアントを探して「インストール」をクリックします。

OpenSSHの実行ファイルは c:\Windows\System32\OpenSSH\ フォルダーに格納されています。
ssh.exe:SSHクライアント本体scp.exe:SSHセッション経由でファイルをコピーするツールssh-keygen.exe:RSA認証鍵(SSH鍵ペア)を生成するツールssh-agent.exe:RSA鍵を管理するためのエージェントssh-add.exe:ssh-agentのデータベースに鍵を登録するツール

なお、旧バージョンのWindowsでもOpenSSHを利用できます。GitHubからWin32-OpenSSHをダウンロードしてインストールしてください。
Windows 10の標準SSHクライアントの使い方
SSHクライアントを使うには、PowerShellまたはコマンドプロンプト(cmd.exe)を開きます。まず、sshコマンドを実行すると、利用可能なオプションと構文を一覧できます。
usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec] [-D [bind_address:]port] [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11] [-i identity_file] [-J [user@]host[:port]] [-L address] [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address] [-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]] destination [command]

SSHでリモートサーバーに接続するには、次のコマンドを使用します。
ssh username@host
SSHサーバーが標準のTCP/22以外のポートで稼働している場合は、-pオプションでポート番号を指定します。
ssh username@host -p port
たとえば、IPアドレスが192.168.1.102のLinuxホストにrootユーザーで接続するには、次のように実行します。
ssh root@192.168.1.102
初回接続時には、接続先のホスト鍵を信頼済みリストに追加するかどうかを確認するメッセージが表示されます。「yes」と入力してEnterキーを押すと、ホスト鍵のフィンガープリントが C:\Users\username\.ssh\known_hosts ファイルに保存されます。
続いてパスワードの入力を求められるので、rootのパスワードを入力します。認証に成功すると、リモートLinuxサーバーのコンソールが開きます(この例では、リモートサーバーにCentOSがインストールされています)。

SSH経由で接続できるのは*Nix系OSだけではありません。Windows側にOpenSSHサーバーを構成すれば、Windowsホスト同士でもSSH接続が可能です。
RSA鍵によるSSH認証を利用している場合は、-iオプションで秘密鍵ファイルのパスを次のように指定できます。
ssh root@192.168.1.102 -i "C:\Users\username\.ssh\id_rsa"
また、秘密鍵をSSH-Agentに登録すれば、接続のたびに鍵のパスを指定する必要がなくなります。まず、ssh-agentサービスを有効化し、自動起動を設定しましょう。
set-service ssh-agent StartupType 'Automatic'
Start-Service ssh-agent
次に、秘密鍵をssh-agentのデータベースに登録します。
ssh-add "C:\Users\username\.ssh\id_rsa"
これで、RSA鍵のパスを指定しなくても鍵が自動的に使用され、パスワード入力なしでサーバーに安全に接続できるようになります(秘密鍵自体にパスフレーズを設定していない場合)。
ssh root@192.168.1.102
その他、覚えておくと便利なSSHの主なオプションは以下のとおりです。
-C:クライアントとサーバー間の通信を圧縮します。回線が遅い・不安定な環境で有効です。-v:SSHクライアントのすべての動作に関する詳細なデバッグ情報を表示します。-R / -L:SSHトンネルによるポートフォワーディングに使用します。
SCP.exeを使ってSSH経由でファイルを転送する方法
Windows 10のSSHクライアントパッケージに含まれるscp.exeを使うと、ローカルPCからSSHサーバーへファイルをコピーできます。
scp.exe "E:\ISO\CentOS-8.1.x86_64.iso" root@192.168.1.202:/home

-rオプションを付けると、ディレクトリの中身を再帰的にまとめてコピーすることもできます。
scp -r E:\ISO\ root@192.168.1.202:/home
逆に、リモートサーバーからローカルPCへファイルをダウンロードすることも可能です。
scp.exe root@192.168.1.202:/home/CentOS-8.1.x86_64.iso c:\iso
RSA鍵による認証を設定しておけば、ファイル転送時にパスワードの入力を求められません。タスクスケジューラなどで定期的な自動ファイルコピーを組みたい場合に特に便利です。
このように、Windows 10だけでSSHサーバーへの接続からscpによるファイルコピーまで完結でき、サードパーティ製アプリやツールは一切不要です。
-
WindowsでiCloudを使う方法|iPhoneデータをPCと同期する手順を解説
iPhoneユーザーだからといって、必ずしもMacを持つ必要はありません。今でも多くの方がWindowsパソコンでの作業を好んでいます。しかし、iPhoneとWindowsの両方のデバイスを同期させるのは、少し面倒だと感じていませんか? 以前、AppleはWindows向けのiTunesをリリースすることで、音楽や動画ファイルの転送にかかる手間を大幅に軽減しました。そして現在では、Windows向けの「iCloud」アプリが登場し、iPhoneとWindowsパソコンの同期がさらに簡単になっています。 この記事では、WindowsでiCloudを使用する方法を詳しく解説します。 Windows
-
SSHサーバーを使って動かなくなったWindows PCにアクセス・復旧させる方法
システムが突然クラッシュし、どんなコマンドにも応答しなくなることは珍しくありません。さらに困るのは、大事なファイルにアクセスしたいのにPCがまったく動かせない状態になってしまったときです。しかし、心配はいりません。SSHサーバーを活用すれば、不具合を起こしたWindows PCにもアクセスでき、事態を打開できる可能性があります。まずは、SSHについて簡単におさらいしておきましょう。SSHサーバーとは?SSH(Secure Shell)は、安全性の確保されていないネットワーク上でも、ネットワークサービスを安全に操作できるように設計された暗号化通信プロトコルです。代表的な用途としては、別のコンピュ