第一步:创建密钥

→ Termius侧边栏菜单
→ Keychain
→ New key
→ Generate key
→ Label 填写 <密钥名称>
→ Generate & save
→ 创建 Key 完毕

第二步:密钥分配

<Private key>:私钥,存于 Termius 或 自行保存。
<Public key>:公钥,存入服务器(后续步骤)。

第三步:公钥存入服务器

  • 登录服务器
  • 创建 SSH 目录

    mkdir -p ~/.ssh
    chmod 700 ~/.ssh
  • 添加公钥

    编辑:
    vim ~/.ssh/authorized_keys
    
    把你的公钥整行粘贴进去,例如:
    ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB6xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Generated By Termius
    保存退出。
    
    设置权限:
    chmod 600 ~/.ssh/authorized_keys
    
    如果已有其他公钥,可以每把钥匙占一行,不要覆盖已有内容。

第四步:检查 SSH 配置

编辑:
vim /etc/ssh/sshd_config

确认(或修改)下面几项:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication yes
PermitRootLogin yes

<注意:如果某一项前面有 #,去掉 #。>

检查配置:
sshd -t
如果没有任何输出,说明配置正确。

重启 SSH:
systemctl restart ssh

第五步:测试密钥登录

→ Termius 侧边栏菜单
→ Hosts
→ 找到目标服务器
→ 编辑信息
→ Credentials 选择 <Key>
→ 选择 Key
→ Connect

扩展:若有多台同一个服务商的实例,可以通过创建 Identities 来统一登录。

→ Termius侧边栏菜单
→ Keychain
→ New key
→ New Identity
→ Label 填写 <Identity名称>
→ 填写 <Username,一般为root>
→ 不填 <Password> ,选择对应的 <密钥Key>
→ 创建 Identity 完毕
→ 使用第五步的方式
→ Credentials 点击 Password 输入框选择创建好的 <Identity>
→ Connect

最后:关闭密码登录

确认密钥登录成功以后,再编辑:
vim /etc/ssh/sshd_config

修改为:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no
PermitRootLogin prohibit-password

部分解释:
PasswordAuthentication no:禁止密码登录。
PermitRootLogin prohibit-password:允许 root 使用密钥登录,但禁止 root 使用密码登录。

再次检查并重启:
sshd -t
systemctl restart ssh

完结,撒花。