本文最后更新于 2024-11-17 7:33

一. 背景介绍:为什么要用SSH连接云主机?

SSH(Secure Shell)是一种加密网络协议,用于在不安全的网络上安全地进行系统登录和其他远程操作。例如,我们在租用云服务器时,通过SSH连接云主机,可以更方便地执行命令、部署应用、管理文件。


二. SSH密钥连接的好处

  1. 安全性高:相比于密码登录,密钥认证不易被暴力破解。
  2. 登录便捷:配置密钥后,无需每次输入密码。
  3. 支持自动化:脚本化操作更加顺畅。

三. 生成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会话

  1. 打开Xshell,点击左上角新建会话。
  2. 主机栏输入你的云主机IP地址,例如 213.11.111.2
  3. 端口号中输入云主机的SSH端口(如 570)。
  4. 用户名处填写 root 或实际使用的用户名。

6.2 配置私钥

  1. 在Xshell会话设置中,选择 连接 > 用户身份验证
  2. 选择用户密钥方式。
  3. 点击密钥管理,导入你本地的私钥文件 id_ed
    • 如果需要转换密钥为PPK格式:可以使用 PuTTYgen 工具进行转换。

6.3 测试连接

连接时,Xshell会自动使用你的私钥进行认证。如果一切配置正确,你应该可以正常登录。

本文系作者 @ admin 原创发布在 文档中心 | AheadAI ,未经许可,禁止转载。