验证远端Windows物理机包含OpenSSL
仅Windows 10 1801及后续更新版本支持系统自带的OpenSSL服务,通过win + R
打开运行面板,输入winver
查看当前版本。本文后续步骤需要使用OpenSSH,其依赖于OpenSSL。
在远端Windows物理机安装并开启 OpenSSH
- 下载最新版本的
OpenSSH
防止后续操作出现 bug(下载地址) - (PowerShell)参考Win32 OpenSSH 官方文档将
zip
文件提取到C:\Program Files\OpenSSH
进行安装# current directory: C:\Program Files\OpenSSH $ powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1
- (PowerShell)打开防火墙并设置新的端口:
$ New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
- (PowerShell)自动生成主机密钥并启动
sshd
:net start sshd
- (PowerShell)设置 sshd 自动开启:
Set-Service sshd -StartupType Automatic
本地访问Windows服务器
密码验证
通过服务器用户密码和ip地址从本地建立SSH隧道访问服务器:
ssh username@ipaddress
(可选)密钥验证代替密码验证
Client 端
- 生成密钥对
$ ssh-keygen [-t rsa] # 方括号中只能为 rsa 算法的生成密钥,参考命名为 id_rsa_win
$ ssh-add /path/to/id_rsa_win
- 将公钥发送至 Server 端
$ rsync -avP ~/.ssh/id_rsa_win.pub username@ipaddress:/mnt/c/Users/username/.ssh/authorized_keys
Server 端
访问 C:\ProgramData\ssh\sshd_config
进行内容修改:
- 取消注释
PubkeyAuthentication yes
- 注释最后两行 (Match Group administrators… AuthorizedKeysFile…)