• openssh快速安装


    背景

    不时会有安装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管理员权限):

    1. Set-ExecutionPolicy Bypass -Scope Process -Force;
    2. cd 'C:\Program Files\OpenSSH-Win64';
    3. .\install-sshd.ps1;
    4. netsh advfirewall firewall add rule name="sshd" dir=in action=allow program="C:\Program Files\OpenSSH-Win64\sshd.exe" enable=yes;
    5. sc.exe config sshd start= auto ; sc.exe qc sshd;
    6. 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"

    写成批处理文件,批量验证一遍,看有无问题。

  • 相关阅读:
    day4 学习python爬虫——接口与常见反爬
    用 Pytorch 自己构建一个Transformer
    Android Graphics 显示系统 - 如何模拟多(物理)显示屏?
    OpenCV 的几种查找图像中轮廓边缘的方法
    【JavaWeb】JSP(172-190)
    Windows中安装Mysql8.0
    安全驱动怎么设计(一)
    基于Servlet WebSocket MySQL实现的网络在线考试系统
    5年测试经验公司不肯要,却花高薪请了个3年经验的测试员....
    uniapp——实现电子签名功能——基础积累
  • 原文地址:https://blog.csdn.net/uddiqpl/article/details/125702390