使用SSH密钥连接云主机及公钥配置指南(包含Xshell及自动脚本配置)
本文最后更新于 2024-11-17 7:33
一. 背景介绍:为什么要用SSH连接云主机?
SSH(Secure Shell)是一种加密网络协议,用于在不安全的网络上安全地进行系统登录和其他远程操作。例如,我们在租用云服务器时,通过SSH连接云主机,可以更方便地执行命令、部署应用、管理文件。
二. SSH密钥连接的好处
- 安全性高:相比于密码登录,密钥认证不易被暴力破解。
- 登录便捷:配置密钥后,无需每次输入密码。
- 支持自动化:脚本化操作更加顺畅。
三. 生成SSH密钥对
SSH密钥对包括公钥和私钥。
生成密钥:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
-t rsa
:指定RSA算法。-b 4096
:密钥长度为4096位,提供更高的安全性。-C "your_email@example.com"
:为密钥添加标识,可以是你的邮箱或任意描述。
生成后的密钥对存储在以下路径:
- 私钥:
~/.ssh/id_rsa
(重要,不要泄露) - 公钥:
~/.ssh/id_rsa.pub
(需要上传到云主机)
四. 在云主机上配置公钥
4.1 创建 .ssh
目录并配置权限
登录云主机后,执行以下命令创建 .ssh
目录,并确保权限设置正确:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
4.2 配置公钥
将公钥追加到 authorized_keys
文件中:
echo "你的公钥内容" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
4.3 通过控制面板直接配置公钥
如果云服务商提供直接管理SSH公钥的功能(如在控制台直接上传公钥),可以跳过登录步骤,直接在Web控制台中进行以下操作:
1. 上传公钥文件。
2. 绑定到目标主机。
将公钥追加到 authorized_keys
文件中:
五. 自动配置SSH公钥脚本(可选)
为避免每次手动配置(例如,使用 RunPod 的云机器,重启后配置会丢失),可以编写一个自动化脚本。
5.1 创建自动化脚本
执行以下命令,使用 vim
创建脚本文件:
vim setup_ssh.sh
在 vim
编辑器中,按 i
进入插入模式,复制以下脚本内容:
#!/bin/bash
# 定义 SSH 目录和 authorized_keys 文件路径
SSH_DIR=~/.ssh
AUTHORIZED_KEYS=$SSH_DIR/authorized_keys
# 定义公钥
PUB_KEY="你的公钥"
# 创建 .ssh 目录(如果不存在)
if [ ! -d "$SSH_DIR" ]; then
mkdir -p "$SSH_DIR"
chmod 700 "$SSH_DIR"
echo ".ssh directory created and permissions set."
fi
# 创建或更新 authorized_keys 文件
if [ ! -f "$AUTHORIZED_KEYS" ]; then
touch "$AUTHORIZED_KEYS"
chmod 600 "$AUTHORIZED_KEYS"
echo "authorized_keys file created and permissions set."
fi
# 检查公钥是否已存在
if grep -q "$PUB_KEY" "$AUTHORIZED_KEYS"; then
echo "Public key already exists in authorized_keys."
else
echo "$PUB_KEY" >> "$AUTHORIZED_KEYS"
echo "Public key added to authorized_keys."
fi
echo "SSH key setup completed."
完成后,按 Esc
退出插入模式,输入 :wq
保存并退出。
5.2 赋予脚本执行权限并运行
赋予脚本可执行权限:
chmod +x setup_ssh.sh
执行脚本:
./setup_ssh.sh
如果配置成功,你会看到以下信息:
.ssh directory created and permissions set.
authorized_keys file created and permissions set.
Public key added to authorized_keys.
SSH key setup completed.
六. 使用Xshell连接云主机
6.1 配置Xshell会话
- 打开Xshell,点击左上角新建会话。
- 在主机栏输入你的云主机IP地址,例如
213.11.111.2
。 - 在端口号中输入云主机的SSH端口(如
570
)。 - 在用户名处填写
root
或实际使用的用户名。
6.2 配置私钥
- 在Xshell会话设置中,选择 连接 > 用户身份验证。
- 选择用户密钥方式。
- 点击密钥管理,导入你本地的私钥文件
id_ed
。- 如果需要转换密钥为PPK格式:可以使用
PuTTYgen
工具进行转换。
- 如果需要转换密钥为PPK格式:可以使用
6.3 测试连接
连接时,Xshell会自动使用你的私钥进行认证。如果一切配置正确,你应该可以正常登录。
本文系作者 @
admin
原创发布在 文档中心 | AheadAI ,未经许可,禁止转载。
有帮助?
评论