# WindowsServer的ssh免密登录

## 目录

* 1.[安装openssh](##安装openssh)
* 2.[免密登录设置](##免密登录设置)
    * [1.在客户端powershell中生成key 密钥对](###1.在客户端powershell中生成key 密钥对)
    * [2.启动服务端ssh并修改配置文件](###2.启动服务端ssh并修改配置文件)
* 3.[将公钥发送到WindowsServer](###3.将公钥发送到WindowsServer)
    * -[方法1：命令](####方法1：命令)
    * -[方法2 ：图形化 ](####方法2 ：图形化 )
* 4.[客户端ssh远程免密登录服务端](##4.客户端ssh远程免密登录服务端)

## 安装openssh

附openssh安装包

附官方连接：https://github.com/PowerShell/Win32-OpenSSH/releases

根据需求在服务端和客户端进行安装(也可以尝试其它安装方案)，Win32可适配大多主机，安装方式见.\pakage\WindowsServer2012R2OpenSsh安装.docx。

./pakage/OpenSSH-Win32.zip

./pakage/OpenSSH-Win64.zip

## 免密登录设置

### 1.在客户端powershell中生成key 密钥对

```batch
ssh-keygen -t ed25519
```

![](.\image\1.png)

### 2.启动服务端ssh并修改配置文件

```batch
REM 启动ssh服务
net start sshd
```

启动完成后"C:\ProgramData\ssh"会创建一些文件

修改内容：注释"C:\ProgramData\ssh\sshd_config"文件

```
#Match Group administrators
#       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
```
修改完成并保存后重启ssh服务
```batch
REM 重启ssh服务
net stop sshd
net start sshd

```


### 3.将公钥发送到WindowsServer

#### 方法1：命令

此刻还需要密码进行连接

```batch
REM 连接远程服务器地址并创建文件".ssh"，如果已创建该文件夹则不需要执行
ssh administrator@10.1.1.143 mkdir C:\Users\administratot\.ssh\

REM 拷贝id_ed25519.pub文件至WindowsServer的"C:\Users\administratot\.ssh\"文件夹下
scp C:\Users\administrator\.ssh\id_ed25519.pub administrator@10.1.1.143:C:\Users\administrator\.ssh\authorized_keys
```

#### 方法2 ：图形化 

将客户端创建的"C:\Users\Administrator\.ssh\id_ed25519.pub"文件中的内容全部复制，粘贴至服务端C:\Users\Administrator\\.ssh\authorized_keys文件中。

*注意：这里不是将"id_ed25519.pub"文件复制到"authorized_keys"文件夹下，"authorized_keys"是一个无后缀的文件，需在该文件内容中追加内容。*

![](.\image\2.png)

![](.\image\3.png)

### 4.客户端ssh远程免密登录服务端

```
ssh administrator@10.1.1.143
```
![](.\image\4.png)

成功登录！

------

如文章有问题或技术深究，欢迎大家畅谈。

*<u>注：本文章技术仅供学习和研究使用,请勿使用该项目的技术手段用于非法用途,任何人造成的任何负面影响,与本人无关.</u>*

<u>[文章来源：https://fireworm.cc](https://fireworm.cc)</u>

