---
title: linux服务器免密ssh连接教程
published: 2025-08-12
tags: [运维, 教程]
category: 运维
draft: false
---

## 1：电脑本地生成SSH密钥对
```
ssh-keygen -t ed25519
```
一路回车即可

#### 本机是Win系统：

默认生成在`C:\Users\用户名\.ssh\`目录


#### 本机是Linux系统：

默认生成在`~/.ssh/`目录

## 2：密钥对说明

`id_ed25519`是私钥，需要保存在本地，不能泄漏。

`id_ed25519.pub`是公钥，需要将里面的内容复制到要连接的目标主机`~/.ssh/authorized_keys`中，可以公开。

这样就可以免密连接目标主机了，其他的都可以不用管，不过为了安全，建议关闭密码认证。

私钥相当于钥匙，公钥相当于锁，将锁放在目标主机上，本机就可以使用钥匙开锁。

当然也可以将锁放在多个目标主机上，实现一把钥匙开多个锁。也就是一个私钥免密连接多个主机。

## 3：`~`目录说明

`~`代表当前用户的家目录

#### Linux系统：

普通用户：`~`等于`/home/用户名/`目录

root用户：`~`等于`/root/`目录

#### Windows系统：

当前用户：`~`等于`C:\Users\用户名\`目录


## 4：使用命令将公钥复制到目标主机

```
ssh-copy-id -i ~/.ssh/id_ed25519.pub root@192.168.2.1
```
如果你的目标主机ssh端口不是默认的22，则需要指定端口参数，例如2233端口：
```
ssh-copy-id -i ~/.ssh/id_ed25519.pub -p 2233 root@192.168.2.1
```

这条命令会自动把`id_ed25519.pub`的内容追加到目标主机的`~/.ssh/authorized_keys`中

多个主机可以使用脚本for循环批量执行

## 5：注意事项

目标主机上需要正确的权限设置，一般默认的权限就是正确的。无需改动。
```
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
```
如果你是在目标主机上生成SSH密钥对的话，则把私钥下载到本地即可。
