windows

Open SSH

Open SSH

OpenSSHサーバをインストールする。

Windows 10,11で公式に使用できるOpenSSHサーバは以下の手順でインストールできます。

  1. Windowsアイコンをクリックしてから表示されるポップアップメニューから「設定」(歯車のアイコンです。)を選択します。
  2. すると、以下のウィンドウが表示されますので、「アプリ」を選択します。
  3. ウィンドウの表示が以下のように切り替わりますので、「オプション機能の管理」をクリックします。
  4. ウィンドウの表示が以下のように切り替わりますので、「機能の追加」をクリックします。
  5. ウィンドウの表示が以下のように切り替わりますので、「OpenSSHサーバー」(赤矢印)をクリックします。
  6. 「OpenSSHサーバー」の部分の表示が以下のように切り替わりますので、「インストール」をクリックします。
  7. OpenSSHサーバーのインストールは行われます。インストールが完了すると、「オプション機能の管理」画面に以下のようにOpenSSHサーバが表示されます。

    なお、「OpenSSH」クライアントはインストールされているようですので、ここまでの手順でOpenSSHのサーバとクライアントがインストールされたことになります。

OpenSSHサーバを他のPCから使用できるようにするための設定。

OpenSSHサーバのインストールができたら、以下の手順で他のPCから使用できるようにするための設定を行います。

  1. PowerShellを管理者権限で起動して以下のコマンドを実行し、TCPの22番ポートを他のPCから使用できるように設定します。> New-NetFirewallRule -Protocol TCP -LocalPort 22 -Direction Inbound -Action Allow -DisplayName SSH 
  2. 管理者権限で以下のコマンドを実行し、sshdの設定ファイルをコピーします(コピー先のディレクトリの”Program”と”Data”の間にはスペースは入りません。以下同じです。)。> copy c:\Windows\System32\OpenSSH\sshd_config_default c:\ProgramData\ssh\sshd_config 
  3. c:\ProgramData\ssh\sshd_configを適当なエディタを用いて管理者権限で開き、ファイルの末尾(または末尾付近)に以下の行が含まれていたらコメントアウトします。コメントアウトしたら、同じファイル名で保存します。Match Group administrators
    AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
    スポンサーリンク 
  4. 管理者権限で以下のコマンドを実行し、OpenSSHサーバのサービスを起動します。> Start-Service sshd 
  5. 管理者権限で以下のコマンドを実行し、Windowsの起動時にsshdが起動するように設定します。> Set-Service sshd -StartupType Automatic 

公開鍵をインポートする。

最後に公開鍵をインポートします。今回のセットアップでは、スマホにインストールしたTermuxやVXConnectBot等で作成した公開鍵(以下、単に「公開鍵」と書きます。)をインポートします。

公開鍵のインポートは以下の手順で行います。

  1. 公開鍵をWindows 10のPCにコピーします。
  2. ホームディレクトリ(通常はc:\Users\<user名>)の下の.sshディレクトリの下にauthorized_keysというファイルが存在する場合には、以下のコマンドを実行し、authorized_keysファイルに公開鍵を追加します。> more <公開鍵のファイル名> >> authorized_keys 
    また、authorized_keysというファイルが存在しない場合には、以下のコマンドを実行し、authorized_keysファイルを作成します。> copy <公開鍵のファイル名> authorized_keys 
  3. authorized_keysファイルにEveryoneに対する読み取り権限が設定されている場合には、PowerShellを起動してコマンドプロンプトより以下のコマンドを実行して、Everyoneに対する読み取り権限を削除します。PS c:\Users\pandanote\.ssh> icacls authorized_keys /remove Everyone
    スポンサーリンク 

参考: authorized_keysファイルの権限の設定の状況の確認の方法

authorized_keysファイルの権限の設定の状況は以下のコマンドをPowerShellのコマンドプロンプトから以下のコマンドを実行すると確認できます。

PS c:\Users\pandanote\.ssh> icacls authorized_keys

OpenSSH Server への接続
インストールすると、次のように PowerShell を使用して、OpenSSH クライアントがインストールされている Windows 10 または Windows Server 2019 デバイスから OpenSSH Server に接続できます。 必ず PowerShell を管理者として実行してください。

PowerShell

ssh username@servername
接続すると、次のようなメッセージが表示されます。

The authenticity of host ‘servername (10.00.00.001)’ can’t be established.
ECDSA key fingerprint is SHA256:(<a large string>).
Are you sure you want to continue connecting (yes/no)?
[はい] を選択すると、そのサーバーが Windows クライアント上の既知の SSH ホストの一覧に追加されます。

この時点で、パスワードの入力を求められます。 セキュリティ上の理由から、入力したパスワードは表示されません。

接続すると、Windows コマンド シェル プロンプトが表示されます。

domain\username@SERVERNAME C:\Users\username>

-windows

PAGE TOP