写在前面的话:

使用win自带的远程连接功能可以很方便的进行win服务器的远程管理,但如果你的系统非win10专业版,或者仅仅想进行文件复制等加密传输功能,或者使用windowns当做服务器的跳板,使用openssh可以完成以上一切操作。



以下操作请在windowns服务器端进行:

安装openssh

打开“设置”,选择“应用”>“应用和功能”,然后选择“可选功能” 。

扫描列表,查看是否已安装 OpenSSH。 如果未安装,请在页面顶部选择“添加功能”,然后:

查找 “OpenSSH 客户端”,再单击“安装”

查找 “OpenSSH 服务器”,再单击“安装”

windows查看是否安装hadoop windows查看是否安装openssh-server_windows查看是否安装hadoop

开启sshd服务

打开任意一个文件夹,左上角按钮->文件->以管理员身份打开 windowns PowerShell

windows查看是否安装hadoop windows查看是否安装openssh-server_windows查看是否安装hadoop_02

启动

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 中的 OpenSSH

windows sshd powershell 配置

用 SSH 远程登录 Windows 10 的 Powershell