「設定 - SSHの有効化(Windows)」の版間の差分

提供:MochiuWiki : SUSE, EC, PCB
ナビゲーションに移動 検索に移動
(Wiki がページ「SSHを有効にする(Windows10)」を「設定 - SSHの有効化(Windows10)」に、リダイレクトを残さずに移動しました)
11行目: 11行目:
# [OpenSSH サーバー]を選択して、[インストール]ボタンを押下する。
# [OpenSSH サーバー]を選択して、[インストール]ボタンを押下する。
# インストール完了後は、サービス一覧に[OpenSSH Server]が登録される。<br>サービスを開始して、スタートアップを[自動]に変更しておくとよい。
# インストール完了後は、サービス一覧に[OpenSSH Server]が登録される。<br>サービスを開始して、スタートアップを[自動]に変更しておくとよい。
# コマンドプロンプトまたはPowerShellを管理者権限で実行する。
## SSHの設定ファイルを、C:\ProgramData\sshフォルダにコピーする。
##: <code>copy C:\Windows\System32\OpenSSH\sshd_config_default C:\ProgramData\ssh\sshd_config</code>
## SSHの設定ファイル(C:\ProgramData\ssh\sshd_config)において、変更したい箇所がある場合、管理者権限でテキストエディタを開いて編集する。
## コマンドプロンプトまたはPowerShellを管理者権限で起動して、ファイヤーウォールにおいて、SSHで使用するポート番号(TCP)を開放する。
##: <code>New-NetFirewallRule -Protocol TCP -LocalPort <SSHのポート番号> -Direction Inbound -Action Allow -DisplayName SSH</code>
##: <code>例. New-NetFirewallRule -Protocol TCP -LocalPort 22 -Direction Inbound -Action Allow -DisplayName SSH</code>
## SSHを開始する。
##: <code>Start-Service sshd</code>
## Windowsの起動時に、SSHサーバが自動起動するように設定する。
##: <code>Set-Service sshd -StartupType Automatic</code>
# Windows Firewallの設定は、自動でOpenSSHサーバが許可された状態となっているが、もし設定がされていない場合は手動で許可する必要がある。
# Windows Firewallの設定は、自動でOpenSSHサーバが許可された状態となっているが、もし設定がされていない場合は手動で許可する必要がある。
<br>
<br>

2022年5月22日 (日) 02:46時点における版

概要

Windows 10 version 1803より、OpenSSHが正式にサポートされた。
これにより、クライアントプログラムは標準でインストールされ、サーバプログラムについても容易にインストール可能となっている。


OpenSSHサーバのインストール

  1. [スタート] - [設定]を選択する。
  2. [アプリ]を選択する。
  3. [オプション機能の管理]を選択する。
  4. [機能の追加]を選択する。
    なお、[OpenSSH クライアント]は標準でインストールされている。
  5. [OpenSSH サーバー]を選択して、[インストール]ボタンを押下する。
  6. インストール完了後は、サービス一覧に[OpenSSH Server]が登録される。
    サービスを開始して、スタートアップを[自動]に変更しておくとよい。
  7. コマンドプロンプトまたはPowerShellを管理者権限で実行する。
    1. SSHの設定ファイルを、C:\ProgramData\sshフォルダにコピーする。
      copy C:\Windows\System32\OpenSSH\sshd_config_default C:\ProgramData\ssh\sshd_config
    2. SSHの設定ファイル(C:\ProgramData\ssh\sshd_config)において、変更したい箇所がある場合、管理者権限でテキストエディタを開いて編集する。
    3. コマンドプロンプトまたはPowerShellを管理者権限で起動して、ファイヤーウォールにおいて、SSHで使用するポート番号(TCP)を開放する。
      New-NetFirewallRule -Protocol TCP -LocalPort <SSHのポート番号> -Direction Inbound -Action Allow -DisplayName SSH
      例. New-NetFirewallRule -Protocol TCP -LocalPort 22 -Direction Inbound -Action Allow -DisplayName SSH
    4. SSHを開始する。
      Start-Service sshd
    5. Windowsの起動時に、SSHサーバが自動起動するように設定する。
      Set-Service sshd -StartupType Automatic
  8. Windows Firewallの設定は、自動でOpenSSHサーバが許可された状態となっているが、もし設定がされていない場合は手動で許可する必要がある。


以上で、OpenSSHサーバのインストールは完了である。


SSHクライアントの設定

Windows 10 version 1803以降では、OpenSSHクライアントが標準でインストールされているが、もしインストールされていない場合は、
[スタート] - [設定] - [アプリ] - [オプション機能の管理] - [機能の追加]から、[OpenSSH クライアント]をインストールする。

PowerShellまたはコマンドプロンプトを起動して、sshコマンドが利用できる。
接続は、SSHサーバが稼働するサーバに対して、以下のようにコマンド入力して接続する。
パスワードは、接続ユーザのパスワードである。

ssh ユーザー名@ホスト名(または、IPアドレス)


また、scpコマンドやsftpコマンドによるSSHファイル転送も可能である。
OpenSSHに含まれるプログラムのため、使用方法は、LinuxのOpenSSHと同様である。


SSH 公開鍵認証

SSHクライアント用の秘密鍵と、SSHサーバ用の公開鍵の鍵ペアを作成し、公開鍵認証でログインできるようにする。

SSHサーバの設定

初期設定では、Administratorsグループのみ、公開鍵(authorized_keys)の場所が.ssh\authorized_keysではなく、
以下のパス / ファイル名に設定されているため注意が必要である。

設定ファイルの場所 : C:\ProgramData\ssh\sshd_config
authorized_keysの場所 : C:\ProgramData\ssh\
authorized_keysのファイル名 : Administrators_authorized_keys

もし、全てのユーザで設定を合わせる場合、事前に、管理者権限で設定ファイルの最後の2行をコメントアウトして、SSHサービスを再起動する必要がある。

公開鍵・秘密鍵を作成する任意のユーザでログオンして設定する。
以下のように、ssh-keygenコマンドで公開鍵・秘密鍵を生成する。

ssh-keygen

コマンド実行後、ホームフォルダー配下に.sshフォルダが作成され、その直下に鍵ペアが生成される。

.sshフォルダへ移動し、公開鍵のファイル名をauthorized_keysに変更する。

cd .ssh
mv id_rsa.pub authorized_keys

上記に記載した通り、Windows OpenSSHの標準設定のままでAdministratorsグループ所属の場合は、
authorized_keysではなくファイル名が異なるので注意する。

公開鍵authorized_keysファイルのアクセス権を変更する。
標準では、Everyoneに読み取り権限が付加されているが、これがあるとSSH鍵認証が通らないため、削除する。

icacls authorized_keys /remove Everyone


以上で、SSHサーバ側の設定は完了である。

SSHクライアントの設定

接続元のSSHクライアント上で、秘密鍵を設定したいユーザでログオンし、PowerShellまたはコマンドプロンプトを起動する。
次に、ホームフォルダ直下(C:\Users\ユーザ名)に.sshフォルダを作成する。
その.sshフォルダ直下に秘密鍵のファイル(id_rsa)を置く。

最後に、SSHサーバに接続できることを確認する。(公開鍵・秘密鍵の生成時にパスフレーズを設定した場合は、パスフレーズの入力が求められる)

ssh ユーザ名@SSHサーバのホスト名(または、IPアドレス)


以上で、SSHクライアント側の設定は完了である。