Windows Server
 Computer >> コンピューター >  >> システム >> Windows Server

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*'

Windows 10の標準SSHクライアントの使い方|OpenSSHの有効化からSCPでのファイル転送まで

この例では、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 クライアントを探して「インストール」をクリックします。

Windows 10の標準SSHクライアントの使い方|OpenSSHの有効化からSCPでのファイル転送まで

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 10の標準SSHクライアントの使い方|OpenSSHの有効化からSCPでのファイル転送まで

なお、旧バージョンの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]

Windows 10の標準SSHクライアントの使い方|OpenSSHの有効化からSCPでのファイル転送まで

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がインストールされています)。

Windows 10の標準SSHクライアントの使い方|OpenSSHの有効化からSCPでのファイル転送まで

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

Windows 10の標準SSHクライアントの使い方|OpenSSHの有効化からSCPでのファイル転送まで

-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によるファイルコピーまで完結でき、サードパーティ製アプリやツールは一切不要です。

  1. WindowsでiCloudを使う方法|iPhoneデータをPCと同期する手順を解説

    iPhoneユーザーだからといって、必ずしもMacを持つ必要はありません。今でも多くの方がWindowsパソコンでの作業を好んでいます。しかし、iPhoneとWindowsの両方のデバイスを同期させるのは、少し面倒だと感じていませんか? 以前、AppleはWindows向けのiTunesをリリースすることで、音楽や動画ファイルの転送にかかる手間を大幅に軽減しました。そして現在では、Windows向けの「iCloud」アプリが登場し、iPhoneとWindowsパソコンの同期がさらに簡単になっています。 この記事では、WindowsでiCloudを使用する方法を詳しく解説します。 Windows

  2. SSHサーバーを使って動かなくなったWindows PCにアクセス・復旧させる方法

    システムが突然クラッシュし、どんなコマンドにも応答しなくなることは珍しくありません。さらに困るのは、大事なファイルにアクセスしたいのにPCがまったく動かせない状態になってしまったときです。しかし、心配はいりません。SSHサーバーを活用すれば、不具合を起こしたWindows PCにもアクセスでき、事態を打開できる可能性があります。まずは、SSHについて簡単におさらいしておきましょう。SSHサーバーとは?SSH(Secure Shell)は、安全性の確保されていないネットワーク上でも、ネットワークサービスを安全に操作できるように設計された暗号化通信プロトコルです。代表的な用途としては、別のコンピュ