Windows 11开启 ssh 服务端
2023-03-20 本文已影响0人
Robin92
安装
在 应用 > 可选功能 > 添加可选功能 中添加 OpenSSH 服务端,安装。
image.png配置与启动
安装后用 管理员身份 打开 PowerShell,执行以下命令启动并配置:
# Start the sshd service
Start-Service sshd
# OPTIONAL but recommended:
Set-Service -Name sshd -StartupType 'Automatic'
# Confirm the Firewall rule is configured. It should be created automatically by setup. Run the following to verify
if (!(Get-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -ErrorAction SilentlyContinue | Select-Object Name, Enabled)) {
Write-Output "Firewall Rule 'OpenSSH-Server-In-TCP' does not exist, creating it..."
New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
} else {
Write-Output "Firewall rule 'OpenSSH-Server-In-TCP' has been created and exists."
}
这样配置之后,外界用户访问需要输入密码。这时需要添加外界用户的 ssh key 并再配置一下(注意,只加 ssh key 不行):
使用 ssh 授权
用户的 ssh pub key 添加到 ~\.ssh\authorized_keys
中。
更改配置文件 C:\ProgramData\ssh\sshd_config
:
#允许公钥授权访问,确保条目不被注释
PubkeyAuthentication yes
#授权文件存放位置,确保条目不被注释
AuthorizedKeysFile .ssh/authorized_keys
#可选,关闭密码登录,提高安全性
PasswordAuthentication no
#注释掉默认授权文件位置,确保以下条目被注释
#Match Group administrators
# AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
注意修改需要用管理员权限保存。保存后用管理员权限重启。
Restart-Service sshd
DONE!