写在前面的话:
使用win自带的远程连接功能可以很方便的进行win服务器的远程管理,但如果你的系统非win10专业版,或者仅仅想进行文件复制等加密传输功能,或者使用windowns当做服务器的跳板,使用openssh可以完成以上一切操作。
以下操作请在windowns服务器端进行:
安装openssh
打开“设置”,选择“应用”>“应用和功能”,然后选择“可选功能” 。
扫描列表,查看是否已安装 OpenSSH。 如果未安装,请在页面顶部选择“添加功能”,然后:
查找 “OpenSSH 客户端”,再单击“安装”
查找 “OpenSSH 服务器”,再单击“安装”
开启sshd服务
打开任意一个文件夹,左上角按钮->文件->以管理员身份打开 windowns PowerShell
启动
Start-Service sshd
Start-Service sshd
启动ssh server开机自启
Set-Service -Name sshd -StartupType 'Automatic'
免密登录
切换文件夹到C:\ProgramData\ssh\下(首次启动sshd后会生成该文件夹),打开sshd_config文件,
修改文件(以下是重点):
#确保以下2条没有被注释
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
#确保以下2条有注释掉 重点,这两行要注释
#Match Group administrators
# AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
修改完保存文件,然后重启ssh server
相关命令:
查看状态:Get-Service sshd
关闭服务:Stop-Service sshd
重启服务:Restart-Service sshd
开启服务:Start-Service sshd
生成私钥和公钥这里省略,详情见:OpenSSH 密钥管理
只需要将生成的公钥改名为authorized_keys,并复制到C:\Users\username.ssh\文件夹下
为 Win10 的 OpenSSH 配置默认 shell
openssh默认的shell为cmd,命令极其缺乏,连ls都要用dir代替,所以这里将默认shell更新为Windows Powershell
先确认 OpenSSH 默认安装位置是:C:Windows\System32\openssh
再确认 PowerShell 默认安装位置:C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
cmd 中 path 命令和 PowerShell 中 $env:path 可以显示当前路径
在 PowerShell 中用以下命令将默认 shell 设为 PowerShell:
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force
查询服务器的ip地址
ipconfig
以下操作请在windowns客户端/服务器端进行:
连接windows服务器
使用命令行
#user改为自己用户名 localhost改为服务器ip
ssh -p 22 user@localhost
使用xshell
输入服务器ip,连接过程中选择用户名和连接秘钥
参考:
windows sshd powershell 配置
用 SSH 远程登录 Windows 10 的 Powershell