Skip to content

易算直连密钥模块 ​

1. 什么是 SSH 公私钥 ​

SSH 密钥对是一种比密码更安全的远程登录认证方式。它由两部分组成:

组成部分存放位置说明
私钥 (Private Key)保存在你自己的电脑上相当于"钥匙",必须妥善保管,绝对不能泄露给任何人
公钥 (Public Key)上传到平台/服务器相当于"锁",放在你要登录的服务器上

工作原理:当你尝试连接服务器时,服务器用你的公钥加密一段随机信息,只有持有对应私钥的人才能解密。解密成功即证明身份,无需输入密码。

⚠️ 安全提示:平台只存储你的公钥,不会存储你的私钥。如果私钥丢失,你将无法使用该密钥登录,需要重新生成新的密钥对。


2. 方式一:平台生成密钥对 ​

如果你不想在本地操作命令行,平台提供了一键生成密钥对的功能,操作步骤如下:

步骤 1:登录平台 ​

登录易算平台,进入 控制台 → 易算终端 → 易算直连 → 添加公私钥

系统生成

在 SSH 密钥管理页面,点击 "生成并下载 .pem" 按钮,填写以下信息:

  • 密钥别名:给密钥起一个好记的名字,就是 别名

步骤 3:下载私钥文件 ​

生成成功后,系统会立即弹出下载一个 .pem 格式的私钥文件。请务必:

  1. 立即下载并保存到安全的位置(如 C:\Users\你的用户名\.ssh\ 或 ~/.ssh/)
  2. 不要修改文件内容,保持原始格式
  3. 私钥下载机会只有一次,如果丢失需要重新生成,关闭窗口后将无法再次查看或下载

步骤 4:设置私钥文件权限 ​

下载后,需要设置正确的文件权限(尤其是在 macOS / Linux 上):

Windows 系统:

  • 将 .pem 文件放到 C:\Users\你的用户名\.ssh\ 目录下
  • 右键点击文件 → 属性 → 安全 → 高级 → 禁用继承 → 仅保留当前用户的可读写权限

macOS / Linux 系统:

bash
# 将私钥移动到 .ssh 目录
mv ~/Downloads/我的开发服务器密钥.pem ~/.ssh/

# 设置权限(仅当前用户可读写)
chmod 600 ~/.ssh/我的开发服务器密钥.pem

3. 方式二:本地生成密钥对 ​

如果你习惯使用命令行,可以在本地电脑上生成密钥对,然后将公钥上传到平台。

3.1 Windows 系统 ​

方法 A:使用 PowerShell / CMD(Windows 10/11 自带 OpenSSH) ​

  1. 打开 PowerShell 或 命令提示符(按 Win + R,输入 powershell 回车)

  2. 执行以下命令生成密钥对:

    powershell
    ssh-keygen -t rsa -b 2048 -f C:\Users\你的用户名\.ssh\my_key
    • -t rsa:使用 RSA 算法
    • -b 2048:密钥长度 2048 位(推荐 2048 或 4096)
    • -f C:\Users\你的用户名\.ssh\my_key:密钥文件保存路径,my_key 可改为你喜欢的名字
  3. 系统会提示输入 passphrase(密码短语):

    • 直接回车 = 不设置密码(方便但安全性稍低)
    • 输入密码 = 每次使用私钥时需要输入(更安全)
  4. 生成成功后,会在 .ssh 目录下产生两个文件:

    • my_key → 私钥(妥善保管,不要分享)
    • my_key.pub → 公钥(需要上传到平台)

方法 B:使用 Git Bash ​

  1. 打开 Git Bash(如果没有安装,请先下载 Git for Windows)

  2. 执行命令:

    bash
    ssh-keygen -t rsa -b 2048 -f ~/.ssh/my_key
  3. 同样按提示操作即可。


3.2 macOS 系统 ​

  1. 打开 终端(Terminal),在"启动台 → 其他 → 终端"中打开

  2. 执行以下命令生成密钥对:

    bash
    ssh-keygen -t rsa -b 2048 -f ~/.ssh/my_key
  3. 按提示输入 passphrase(可选)

  4. 生成成功后,设置私钥权限:

    bash
    chmod 600 ~/.ssh/my_key
  5. 查看生成的公钥内容(用于后续上传):

    bash
    cat ~/.ssh/my_key.pub

3.3 Linux 系统 ​

  1. 打开终端

  2. 执行以下命令生成密钥对:

    bash
    ssh-keygen -t rsa -b 2048 -f ~/.ssh/my_key

    提示:也可以使用 -t ed25519 生成更现代、更安全的 Ed25519 密钥:

    bash
    ssh-keygen -t ed25519 -f ~/.ssh/my_key
  3. 按提示输入 passphrase(可选)

  4. 设置私钥权限:

    bash
    chmod 600 ~/.ssh/my_key
  5. 查看公钥内容:

    bash
    cat ~/.ssh/my_key.pub

4. 上传公钥到平台 ​

无论是本地生成还是平台生成,你都可以将公钥上传到平台进行管理。

上传步骤 ​

  1. 登录平台,进入 控制台 → 易算终端 → 易算直连 → 添加公私钥

  2. 点击 "本地上传" 按钮

  3. 填写以下信息:

    • 密钥别名:给密钥起一个名字,就是 `别名``
    • 公钥内容:将你的公钥文件内容完整粘贴进来

    公钥内容通常长这样:

    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC8...省略... rsa-key-20240101

查看公钥内容的方法 ​

  • Windows:用记事本打开 .pub 文件,复制全部内容
  • macOS / Linux:执行 cat ~/.ssh/my_key.pub,复制输出的内容

上传后 ​

上传成功后,公钥会出现在你的密钥列表中。你可以:

  • 修改别名:方便记忆
  • 启用/停用:临时禁用某个密钥
  • 删除:不再使用的密钥可以删除

5. 配置 SSH 客户端使用私钥 ​

5.1 命令行直接指定私钥 ​

bash
ssh -i ~/.ssh/my_key 用户名@服务器地址
  • -i 参数指定私钥文件路径
  • Windows 示例:ssh -i C:\Users\你的用户名\.ssh\my_key -p 44322 user@ssh.yeesuan.com

5.2 配置 SSH Config 文件(推荐) ​

编辑 SSH 配置文件,实现免密快捷登录。

配置文件位置:

  • Windows:C:\Users\你的用户名\.ssh\config
  • macOS / Linux:~/.ssh/config

配置示例:

Host myserver
    HostName ssh.yeesuan.com
    Port 44322
    User your_username
    IdentityFile ~/.ssh/my_key

配置后,直接使用 ssh myserver 即可登录,无需每次都输入完整命令。

5.3 使用 VS Code Remote-SSH ​

  1. 安装 Remote - SSH 扩展
  2. 按 F1 → 输入 Remote-SSH: Open SSH Configuration File
  3. 添加配置:
    Host myserver
        HostName ssh.yeesuan.com
        Port 44322
        User your_username
        IdentityFile ~/.ssh/my_key
  4. 按 F1 → Remote-SSH: Connect to Host → 选择 myserver

5.4 使用 Xshell / SecureCRT 等工具 ​

  • Xshell:会话属性 → 连接 → 用户身份验证 → 方法选择 "Public Key" → 浏览选择私钥文件
  • SecureCRT:会话选项 → SSH2 → 公钥 → 属性 → 选择私钥文件
  • PuTTY:需要先将私钥转换为 .ppk 格式(使用 PuTTYgen 工具)

6. 常见问题排查 ​

Q1:SSH 连接时报 "Permissions 0644 for 'xxx.pem' are too open" ​

原因:私钥文件的权限太宽松,SSH 出于安全考虑拒绝使用。

解决:

bash
# macOS / Linux
chmod 600 ~/.ssh/your_key.pem

# Windows
# 右键文件 → 属性 → 安全 → 高级 → 禁用继承 → 
# 删除所有其他用户的权限,仅保留当前用户

Q2:提示 "Permission denied (publickey)" ​

原因:可能的原因有:

  • 公钥没有正确上传到平台
  • 私钥文件路径不正确
  • 私钥与服务器上的公钥不匹配

排查步骤:

  1. 确认公钥已上传到平台且状态为"启用"
  2. 检查 ssh 命令中 -i 参数指定的私钥路径是否正确
  3. 使用 ssh -v 查看详细调试信息:ssh -v -i ~/.ssh/my_key -p 44322 user@host
  4. 确认使用的是与上传公钥配对的私钥

Q3:Windows 上找不到 .ssh 文件夹 ​

解决:

  1. 打开 PowerShell,执行 mkdir C:\Users\你的用户名\.ssh
  2. 或者在文件资源管理器地址栏直接输入 %USERPROFILE%\.ssh 回车

Q4:忘记了私钥的 passphrase ​

说明:passphrase 是无法找回的。如果忘记,只能重新生成新的密钥对,并将新公钥上传到平台。

Q5:如何将 PEM 格式私钥转换为 PPK 格式(用于 PuTTY) ​

  1. 下载并打开 PuTTYgen
  2. 点击 "Load" → 选择你的 .pem 文件
  3. 点击 "Save private key" → 保存为 .ppk 文件
  4. 在 PuTTY 中使用该 .ppk 文件

Q6:推荐的密钥类型和长度 ​

密钥类型推荐长度说明
RSA2048 / 4096兼容性最好,几乎所有系统都支持
Ed25519256(固定)更现代、更安全、速度更快,推荐新系统使用
ECDSA256 / 384 / 521介于 RSA 和 Ed25519 之间

当前平台默认使用 RSA 2048 位密钥,兼容性最佳。


附录:SSH 密钥文件格式说明 ​

公钥格式(OpenSSH) ​

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC8...(Base64编码)... 注释(可选)
  • 第一部分:密钥类型(ssh-rsa、ssh-ed25519 等)
  • 第二部分:Base64 编码的公钥数据
  • 第三部分:可选注释(通常是生成者的用户名和主机名)

私钥格式(PEM) ​

-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEA...(Base64编码的私钥数据)...
-----END RSA PRIVATE KEY-----

📞 如有其他问题,请联系系统管理员或技术支持团队。