オフライン環境のWindowsServerにOpenSSHをインストールする機会があったためメモを残します。
GitHubからソースをダウンロードする。
以下のリンクからWindowsServerにインストールするためのソースをダウンロードします。
インストール用のPowershellScriptの作成
インストール用のPowershellScriptを作成します。具体的には以下の作業をPowershellで実行します。
- ダウンロードしたZipをカレントディレクトリに解凍
- 解答したフォルダを
C:\Program Files
に配置 - install-sshd.ps1を実行しインストールを実行
- Serviceの起動と自動起動の設定
- Firewallの22番ポートのインバウントを許可
Firewallの操作に利用するNew-NetFirewallRule
コマンドはWindows 2012 以降のサーバーのみが対象です。Windows 2008 R2 以前を利用している場合は以下のコマンドを実行してください。
netsh advfirewall firewall add rule name=sshd dir=in action=allow protocol=TCP localport=22
InstallAndSettingOpenSSH.ps1
# Unzip OpenSSH-Win64.zip
Expand-Archive -Path .\OpenSSH-Win64.zip -DestinationPath .\OpenSSH-Win64 -Force
# Move OpenSSH-Win64 to C:\Program Files\OpenSSH-Win64
Move-Item -Path ".\OpenSSH-Win64\OpenSSH-Win64" -Destination "C:\Program Files\OpenSSH-Win64" -Force
# Install OpenSSH
cd "C:\Program Files\OpenSSH-Win64"
.\install-sshd.ps1
# Start SSHD & Agent Service
Start-Service sshd
Start-Service ssh-agent
# Setting SSHD & Agent Service to Automatic
Set-Service sshd -StartupType Automatic
Set-Service ssh-agent -StartupType Automatic
# Add Firewall Rule
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
上記のコマンドをダウンロードしたZipと同一の階層に配置し、その後InstallAndSettingOpenSSH.ps1
を実行します。
エラー解決
-
Connection reset by <IP> port 22
が表示されて接続できない場合
接続先サーバーのC:\Program Files\OpenSSH-Win64
フォルダのセキュリティにAuthenticated Users
の権限が付与されていない可能性があります。
参考