Windows安装OpenSSH配置免密登录

安装OpenSSH

Windows安装OpenSSH配置免密登录

安装Windows自带的OpenSSH

  1. 进入设置---应用---可选功能---添加功能,选择客户端和服务器进行安装

下载压缩包进行安装

  1. 下载对应的OpenSSH-Win64 https://github.com/PowerShell/Win32-OpenSSH/releases

  2. 解压后需要安装sshd服务,通过管理员启动PowerShell,进入到OpenSSH-Win64的解压目录,执行如下命令

    powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1

  3. 将解压路径配置到环境变量

开放22端口执行如下命令:

netsh advfirewall firewall add rule name=sshd dir=in action=allow protocol=TCP localport=22

启动sshd服务

  1. win+r运行窗口输入services.msc,找到OpenSSH SSH Server,并选择启动类型为自动,并启动服务

回环连接测试

  1. 测试本地连接

    ssh 用户名@ip
    # 一直连不上考虑用户组或域,如下
    ssh 用户组名(域名称)/用户名@ip

  2. 输入密码,连接后使用exit退出

配置免密登录

  1. 客户端生成密钥,在客户端的PowerShell或CMD中输入ssh-keygen -t rsa -C “192.168.31.19”,用-C来指定所指定的注释,可以方便用户识别这个密钥,了解密钥的用途或其他有用的信息。

  2. 生成的秘钥默认存储在C:\Users\用户名\.ssh目录下

  3. 将公钥分发给远程服务主机C:\Users\用户名\.ssh目录的authorized_keys文件中,文件没有就创建,文件已存在则追加

    # 在Windows中,路径使用反斜杠(\)作为分隔符。在Linux和Unix系统中,路径使用正斜杠(/)作为分隔符。
    # 不存在authorized_keys,可以直接使用下面一行的命令
    scp C:\Users\IN23090010\.ssh\id_rsa.pub ravogroup\in23090010@192.168.31.19:C:\IN23090010\.ssh\authorized_keys
    # 存在authorized_key,可以先copy过去再追加
    scp C:\Users\IN23090010\.ssh\id_rsa.pub ravogroup\in23090010@192.168.31.19:C:\IN23090010\.ssh\1921683119_pub
    ssh ravogroup\in23090010@192.168.31.19 "type C:\IN23090010\.ssh\1921683119_pub >> C:\IN23090010\.ssh\authorized_keys"
  4. 远程服务主机上的authorized_keys公钥文件的权限设置为当前用户、system、Administrators,删除其他组和用户

  5. 修改sshd服务配置文件"C:\ProgramData\ssh\sshd_config",ProgramData为隐藏文件夹

    # 打开公钥认证
    PubkeyAuthentication yes
    # 注释最后两行
    #Match Group administrators
    #       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
  6. 重启sshd

    net stop sshd
    net start sshd
  7. 测试免密成功,如不成功,确认是否有权限修改sshd_config配置文件