openssh快速安装(win10)

背景
不时会有安装openssh的需求。故简要记录下,以做备忘。

OS
windows 10 LSTC

方法
方法1-自动安装
如果目标机器能上网,可以自动安装:通过搜索,"添加可选功能“,选择openssh 服务端,安装便可。

方法2-手动安装
如果目标机器不能上网,可以采用手动安装的方式。

2.1 先下载

https://github.com/PowerShell/Win32-OpenSSH

2.2 解压缩,可放到C:\Program Files\OpenSSH-Win64

2.3 以管理员权限打开powershell,执行安装脚本:install-sshd.ps1

注意,此时可能会提示执行策略不允许。需要设置执行策略,示例如下:

Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser -Force
也可查看 Set-ExecutionPolicy的帮助

get-help Set-ExecutionPolicy
执行安装

.\install-sshd.ps1
注:可以在powershell中输入cmd/powershell,进行二者的切换。

2.4 防火墙允许

新增防火墙的入站规则,对程序C:\Program Files\OpenSSH-Win64\sshd.exe允许放行。

netsh advfirewall firewall add rule name="sshd" dir=in action=allow program="C:\Program Files\OpenSSH-Win64\sshd.exe" enable=yes
参考:

在命令提示符下添加防火墙规则_Mr_神棍的博客-CSDN博客

2.5 设置服务自动启动,并查看配置信息

sc config sshd start= auto & sc qc sshd
2.6 启动服务,并查看服务状态

sc start sshd & sc query sshd
一次性运行(以powershell管理员权限):

Set-ExecutionPolicy Bypass -Scope Process -Force;
cd 'C:\Program Files\OpenSSH-Win64';
.\install-sshd.ps1;
netsh advfirewall firewall add rule name="sshd" dir=in action=allow program="C:\Program Files\OpenSSH-Win64\sshd.exe" enable=yes;
sc.exe config sshd start= auto ; sc.exe qc sshd;
sc.exe start sshd ; sc.exe query sshd;
参考:

Powershell ExecutionPolicy 执行策略 - wswind - 博客园

配置免密
1,运行ssh-keygen,一路默认即可。

2,在.ssh目录下,新建authorized_keys文件,将访问端机器的id_rsa.pub的内容,复制粘贴到此文件,然后保存。

3,修改配置文件C:\ProgramData\ssh\sshd_config 中的内容:

……

PubkeyAuthentication yes

……

#Match Group administrators
# AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

注:可参考openssh 设置免密登录

4,重启sshd服务,便可免密访问。

net stop sshd & net start sshd
更新:批量配置免密
如果有多台机器需要配置免密登录,为提高效率,可通过以下方式:

1,按上述步骤,先修改出一份sshd_config文件(假设名为modified_sshd_config_file),然后将其scp到目标机器。示例如下:

scp modified_sshd_config_file username@host:c:\programdata\ssh\sshd_config
写成bat文件,执行一遍。执行过程中依然要输入密码。

2,将访问端id_rsa.pub的内容,复制到目标机器的authorized_keys文件,并重启sshd服务。示例如下:

ssh username@host "mkdir .ssh & echo file_content_of_id_rsa_pub> .ssh\authorized_keys & net stop sshd & net start sshd"
同样写成bat文件,执行一遍(依然要输入密码)。

注:此命令的动作:新建.ssh目录;将本机端id_rsa.pub的文件内容写入authorized_keys文件,并重启sshd服务。

执行完成后,便实现免密码登录。可以按如下方式验证一下:

ssh -o connectTimeout=3 username@host "echo test"
写成批处理文件,批量验证一遍,看有无问题。
————————————————
版权声明:本文为CSDN博主「闫辉_13510215218」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/uddiqpl/article/details/125702390

posted @ 2022-11-28 19:46  yangjianfeng  阅读(435)  评论(0编辑  收藏  举报