Termius SSH 密钥登录配置:创建密钥并安全连接 Linux 服务器
在管理 Linux VPS 或远程服务器时,使用 SSH 密钥登录是一种比单纯依赖密码更值得推荐的认证方式。
本文记录如何通过 Termius 创建 SSH 密钥、将公钥添加到 Linux 服务器、配置并测试密钥登录,以及在确认可正常登录后关闭密码认证。此外,也会介绍如何通过 Identity 统一管理多台服务器的登录凭据。
一、准备工作
开始之前,请确认以下条件:
- 已安装 Termius 客户端。
- 拥有目标 Linux 服务器的 SSH 登录权限。
- 当前仍能通过密码或其他可用方式登录服务器。
- 拥有修改 SSH 配置和重启 SSH 服务的权限。
本文以 Debian / Ubuntu 系统为例,默认使用 root 用户演示。若使用普通用户,请将后续的 ~/.ssh 替换为对应用户的 SSH 目录。
注意:在完成密钥登录测试之前,不要关闭当前 SSH 会话,也不要提前禁用密码登录。 如果配置错误,可能导致自己无法再次登录服务器。
二、在 Termius 中创建 SSH 密钥
打开 Termius,按照以下步骤操作:
- 进入侧边栏的
Keychain。 - 点击
New Key。 - 选择
Generate Key。 - 在
Label中填写密钥名称,例如My-VPS-Key。 - 点击
Generate & Save,完成密钥创建。
创建完成后,Termius 中会保存对应的密钥信息。
SSH 密钥通常由以下两部分组成:
- Private Key(私钥):用于客户端身份认证,应妥善保管,不要发送给他人,也不要上传到公开仓库。
- Public Key(公钥):用于服务器验证客户端身份,需要将其添加到服务器的授权密钥文件中。
本文使用 Termius 生成密钥。如果你已经拥有一对 SSH 密钥,也可以直接使用现有密钥,无须重复创建。
三、将公钥添加到 Linux 服务器
1. 登录服务器并创建 SSH 目录
使用现有方式登录服务器,执行:
mkdir -p ~/.ssh
chmod 700 ~/.ssh其中:
mkdir -p ~/.ssh:创建 SSH 配置目录,目录已存在时不会报错。chmod 700 ~/.ssh:限制目录访问权限,仅当前用户可以访问。
2. 获取 Termius 公钥
在 Termius 中进入:
Keychain
→ 找到已创建的 Key
→ 查看 Public Key
→ 复制公钥内容公钥通常以 ssh-ed25519 或 ssh-rsa 开头,例如:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIxxxxxxxxxxxxxxxxxxxxxxxxxxxx My-VPS-Key以上内容仅为格式示例,请使用你自己的完整公钥。
3. 写入服务器授权文件
执行:
vim ~/.ssh/authorized_keys将公钥完整粘贴到文件中,保存退出,然后设置权限:
chmod 600 ~/.ssh/authorized_keys如果文件中已经存在其他公钥,请在新的一行追加,不要覆盖原有内容。
对于 root 用户,文件路径通常为:
/root/.ssh/authorized_keys对于普通用户,则应写入该用户自己的 ~/.ssh/authorized_keys。
4. 检查文件权限和所有权
执行:
ls -ld ~/.ssh
ls -l ~/.ssh/authorized_keys如果使用 root 用户操作,目录和文件通常应由 root 所有。如果发现所有权不正确,可执行:
chown -R root:root /root/.ssh
chmod 700 /root/.ssh
chmod 600 /root/.ssh/authorized_keys注意: 上述 chown 命令仅适用于 root 用户。使用普通用户时,应改为对应的用户名和用户组。
四、检查服务器 SSH 配置
编辑 SSH 服务端配置文件:
vim /etc/ssh/sshd_config确认公钥认证已启用:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys如果配置项前面有 #,需要先确认实际生效的配置,再决定是否取消注释或修改。
原文中的密码认证和 root 登录配置,不建议直接作为所有服务器的通用配置。对于仍需密码登录的初始配置阶段,可以暂时保留现有设置;对于最终安全配置,应根据实际使用的登录账户决定是否允许 root 登录。
检查 SSH 配置是否正确
执行:
sshd -t如果没有任何输出,通常表示配置文件语法检查通过。
还可以查看最终生效的配置:
sshd -T | grep -E '^(pubkeyauthentication|authorizedkeysfile|passwordauthentication|permitrootlogin) '需要注意:如果系统使用了 Include 配置文件、Match 条件或其他覆盖规则,最终生效的配置可能与主配置文件中的单独一行不同。
如果修改了 SSH 配置,建议先保持当前会话不关闭,再重载服务:
systemctl reload ssh如果系统不支持重载,再根据实际情况使用:
systemctl restart sshDebian / Ubuntu 通常使用 ssh 作为服务名称;其他发行版可能使用 sshd。
五、在 Termius 中测试密钥登录
完成公钥配置后,返回 Termius:
- 进入侧边栏的
Hosts。 - 找到需要连接的服务器。
- 编辑服务器配置。
- 在
Credentials中选择对应的 Key 或身份凭据。 - 确认用户名、服务器地址和 SSH 端口正确。
- 保存后重新连接服务器。
如果能够正常登录,说明密钥认证基本配置成功。
建议再新建一个独立连接进行验证,并确认登录使用的是预期的服务器账户。
在验证成功之前,请保留原有 SSH 会话和可用的备用登录方式。
如果无法登录,可以优先检查:
- 公钥是否完整写入
authorized_keys。 - 是否将公钥写入了正确用户的目录。
.ssh目录和authorized_keys文件的权限、所有权是否正确。- Termius 是否选择了正确的私钥。
- 服务器的 SSH 端口、防火墙和安全组规则是否正确。
- SSH 服务日志是否存在认证失败记录。
Debian / Ubuntu 可以通过以下命令查看日志:
journalctl -u ssh -n 100 --no-pager六、通过 Identity 统一管理多台服务器
如果需要管理多台服务器,可以使用 Termius 的 Identity 功能,减少重复配置登录凭据的工作。
在 Termius 中进入:
Keychain
→ New Key
→ New Identity根据客户端版本,实际菜单名称可能略有差异。创建 Identity 时:
- 在
Label中填写身份名称,例如Root-Servers。 - 在
Username中填写登录用户名,例如root。 - 根据服务器的认证方式,选择对应的 Key。
- 如果使用纯密钥认证,不需要额外填写密码。
- 保存 Identity。
然后进入 Hosts,编辑目标服务器,在 Credentials 中选择刚刚创建的 Identity。
这样,多台服务器可以复用同一套客户端身份配置,不必逐台重复填写凭据。
需要注意,统一管理不等于所有服务器都必须共用同一把密钥。如果服务器之间的安全边界不同,建议按用途或安全等级划分密钥,降低单把私钥泄露后的影响范围。
七、确认密钥登录成功后,关闭密码认证
如果希望进一步提高安全性,可以在确认密钥登录正常后,关闭 SSH 密码认证。
再次编辑:
vim /etc/ssh/sshd_config根据服务器的登录策略设置以下配置:
PubkeyAuthentication yes
PasswordAuthentication no如果服务器只允许通过密钥登录 root,还可以考虑:
PermitRootLogin prohibit-password其中:
PubkeyAuthentication yes:启用公钥认证。PasswordAuthentication no:关闭 SSH 密码认证。PermitRootLogin prohibit-password:允许 root 使用公钥等非密码方式认证,但禁止 root 通过密码认证。
这里需要特别注意:PasswordAuthentication no 并不等同于禁用所有其他认证方式,例如 PAM 交互认证等仍可能受其他配置影响。若需要严格限制登录方式,应结合服务器的实际认证配置检查。
应用配置前的安全检查
先检查语法:
sshd -t确认没有错误后,再重载 SSH:
systemctl reload ssh随后,保持原来的 SSH 会话不关闭,使用一个新的 Termius 连接测试密钥登录。
只有在新连接确认成功后,才建议结束原有会话。
如果新连接失败,应通过仍然可用的原有会话修复配置。若原有会话也已断开,则可能需要使用服务商提供的 Web 控制台、VNC 或救援模式恢复。
八、常用检查命令
| 目的 | 命令 |
|---|---|
| 检查 SSH 配置语法 | sshd -t |
| 查看 SSH 服务状态 | systemctl status ssh |
| 查看 SSH 服务日志 | journalctl -u ssh -n 100 --no-pager |
| 查看 SSH 目录权限 | ls -ld ~/.ssh |
| 查看授权公钥文件权限 | ls -l ~/.ssh/authorized_keys |
| 查看实际生效的认证配置 | sshd -T |
九、总结
通过以上步骤,即可完成 Termius 密钥创建、Linux 服务器公钥授权、SSH 配置检查和密钥登录验证。
对于长期运行的 VPS,建议至少做到以下几点:
- 妥善保存私钥,避免泄露。
- 使用正确的文件权限和所有权。
- 关闭不必要的密码认证。
- 在修改 SSH 配置前检查语法。
- 修改认证策略后使用新连接验证,避免锁定自己。
- 为不同安全等级的服务器合理划分密钥。
SSH 密钥登录只是服务器安全的基础措施之一,还应结合防火墙、安全组、系统更新、账户权限和日志审计共同使用。
完结,撒花。
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
评论已关闭