Windows SSH

问题

测试服务器是Windows Server 2012, 测试客户端机器是Windows 10(系统自带SSH)。

尝试过 OpenSSH for windowsFreeSSHD 均有问题,前者服务无法启动,后者客户端连接乱码,最终选用 Win32-OpenSSH

实施

1. 安装SSH服务

  1. 这里 下载最新的发布版本
  2. 解压到服务器的 C:\Program Files\OpenSSH 目录。
    确认该目录的写入权限只分配给 SYSTEMAdministrator ,其他用户只有读取和执行权限。
  3. 使用管理员打开PowerShell ,跳转到刚才解压得目录,执行下面的命令:
    powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1

2. 防火墙端口设置

执行,开放防火墙22端口给SSH

New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22

注意: New-NetFirewallRule 只在Windows Server 2012 或者更高版本上有效,如果是客户端的Windows 或者 Windows 2008 R2 或者更低的服务器版本,执行
netsh advfirewall firewall add rule name=sshd dir=in action=allow protocol=TCP localport=22

3. 启动SSHD服务

执行net start sshd启动服务

启动后会自动创建 %programdata%\ssh 文件夹,包含有服务器相关的配置,修改配置后需要重启SSHD服务

4. SSH服务登录认证

客户端登录SSH服务器常用两种方式: 密码认证,公钥认证。

4.1 密码认证

客户端机器执行 ssh <username>@<host>,回车后会要求输入密码

  • username: 服务器上的用户名
  • host:服务器地址或者域名

4.2 公钥认证

  1. 客户端生成访问公钥
    客户端执行 ssh-keygen -t rsa ,根据提示设置密码,过程如下图,
    完成后就会在C:\Users\Administrator/.ssh/id_rsa 看到 id_rsa.pub 就是公钥
    在这里插入图片描述

  2. 拷贝公钥到服务器
    用记事本打开服务器的C:\Users\<服务器用户名>/.ssh/authorized_keys(如果文件和文件夹不存在,则创建),粘贴刚才客户端生成的 id_rsa.pub到文件最后。

  3. 客户端连接 ssh <服务器主机> 根据提示输入上面设置的密码,即可正常登陆。

4.2.1 额外的配置

客户端每次连接都需要输入密码,挺麻烦的,下面使用 ssh-agent 保存密码。

ssh-agen add <id_rsa文件>

问题解答

无法使用公钥认证

在使用中发现配置文件中默认的密钥路径有错误。

打开服务器%programdata%\ssh\sshd_config,找到如下一行

AuthorizedKeysFile .ssh/authorized_keys

修改为

AuthorizedKeysFile C:\Users\<服务器用户名>/.ssh/authorized_keys 

重启SSHD服务即可

Windows SSH是指在Windows操作系统上使用SSH协议进行安全远程访问的功能。你可以通过安装和配置OpenSSH来在Windows上启用SSH功能。首先,你可以使用PowerShell安装OpenSSH,具体的安装步骤可以参考Microsoft的官方文档。另外,你也可以通过使用命令提示符或者Windows PowerShell窗口来检查电脑是否已经安装并开启了SSH功能,具体的检查方法可以参考。如果你的电脑还没有安装或者没有开启SSH功能,你可以使用以下命令来安装OpenSSH Server:Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0 。这样,你就可以在Windows上使用SSH协议进行远程访问了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [如何使用ssh连接windows?](https://blog.csdn.net/qq_41566366/article/details/128496098)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [windows开启ssh服务教程及常见问题](https://blog.csdn.net/m0_54648836/article/details/126186664)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值