投稿日:
Windows標準のOpenSSHを利用してSSHDを立てる方法。
SSHサーバーをインストールする
20分くらいかかるので、気長に待つ。
# 有効なバージョンの確認
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'
# インストール
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
SSHDサービスを構成する
# SSHDサービスの開始
Start-Service sshd
# 自動起動に設定
Set-Service -Name sshd -StartupType 'Automatic'
# 構成状況の確認
Get-Service -Name sshd
(Get-Service -Name "sshd").StartType
SSHDを鍵認証できるように設定する
%programdata%\ssh\sshd_config
に設定ファイルがあるので、これを触る。
Ubuntuと同じOpenSSHであるため、設定方法は基本的に過去に書いたSSHDの設定方法と同じだが、管理者であればAuthorizedKeysFile
のコメントを外す必要はない。
管理者である場合、authorized_keys
はadministrators_authorized_keys
というファイル名にして%programdata%\ssh
に置く。
書き換えたらRestart-Service sshd
で再起動する。
上手く繋がらない場合は、Stop-Service sshd
でサービスを止めたうえでsshd.exe -ddd -e
で直に起動するとデバッグログが見れるので参考にする。
ファイアーウォールへの穴開け
- コントロールパネル→Windows Defender ファイアウォール→詳細設定を開く
- 受信の規則にOpenSSHが登録されているが、ポート番号が変更不能なため削除する
次のコマンドを流し、規則を作りなおす
New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort <ポート番号>
投稿日:
Windowsに入っている古くて使いづらいPowerShellをアップグレードするところから始める。
- Powershell 7.xを入れる
- PowerShellを管理者権限で起動
Set-ExecutionPolicy RemoteSigned
を流す- hoge.ps1などの名前で適当にファイルを作り、
C:\Program Files\PowerShell\7\pwsh.exe
に関連付けする