yagamil 发表于 2024-8-15 15:40:31

一键启用SSH仅密钥登录VPS脚本

## 生成SSH密钥对

打开`CMD`粘贴下面的命令然后一路回车,然后去桌面打开`id_ed25519.pub`文件,这里面的就是公钥,公钥后面的注释可以删除,`id_ed25519`这个文件就是私钥,在你的SSH客户端上用来连接服务器的
!(https://img.gwwc.net/up/2024/08/uHqDD0.png)

## 生成SSH密钥对命令

```
ssh-keygen -t ed25519 -f "%USERPROFILE%\Desktop\id_ed25519"
```

## 一键启用仅密钥登录脚本

保存为`xxx.sh`文件

```
#!/bin/bash

# 设定公钥变量
PUBLIC_KEY="填入你的公钥"

# 创建.ssh目录并添加公钥到authorized_keys
mkdir -p ~/.ssh
echo $PUBLIC_KEY >> ~/.ssh/authorized_keys

# 设置权限
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh

# 修改SSH配置文件
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup # 备份之前的配置文件
sed -i 's/^PermitRootLogin .*/PermitRootLogin without-password/' /etc/ssh/sshd_config # 修改为ROOT用户仅密钥登录SSH
# sed -i 's/^Port .*/Port 5122/' /etc/ssh/sshd_config # 修改SSH的端口为5122,如需修改可删掉前面的注释,默认不修改

# 重启SSH服务
systemctl restart sshd
```

## 执行方式

1. 在服务器上直接执行:

- 登录到你的服务器。
- 使用 nano、vi 等文本编辑器创建并编辑 enable_key_login.sh 文件,粘贴上述脚本。
- 赋予执行权限:chmod +x enable_key_login.sh。
- 执行脚本:bash enable_key_login.sh,脚本将自动完成配置和重启SSH服务。

1. 远程执行:

- 将脚本上传到文件托管网站,例如 GitHub 或你的静态网站。
- 使用哪吒探针的计划任务或者利用SSH客户端批量执行命令功能为多台服务器修改配置:

```
curl -sL http://domain.com/path/to/enable_key_login.sh | bash
```

替换 https://domain.com/path/to/enable_key_login.sh 为你的实际文件地址。
页: [1]
查看完整版本: 一键启用SSH仅密钥登录VPS脚本