目录
在 Termius 中生成 SSH 密钥对
打开 Termius 客户端。
点击左侧菜单栏的 Settings(设置)。
找到并选择 Keychain(密钥管理)。
点击右上角的 Generate Key 按钮,生成新的密钥对。
Key Type:选择 RSA。
Key Size:推荐 4096。
Passphrase:设置密码(可选)。
生成完成后,你会看到新密钥出现在密钥列表中。
复制公钥并配置服务器
在 Termius 的 Keychain 中,点击新生成的密钥旁边的 Copy Public Key,将公钥内容复制到剪贴板。
确保服务器的 ~/.ssh
目录存在并权限正确:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
将公钥内容粘贴到 authorized_keys
文件:
nano ~/.ssh/authorized_keys
设置文件权限:
chmod 600 ~/.ssh/authorized_keys
配置 Termius 使用私钥登录
打开 Termius 的主界面。
点击 Hosts,选择你的服务器(或者新建一个 Host)。
Address:输入服务器的 IP 地址。
Port:默认是 22。
Username:输入你的服务器用户名(如 root)。
在 Identity 部分,点击 Select Key,选择你刚生成的私钥。
保存配置,链接服务器即可!
测试密钥登录
一键启用公钥登录并配置 SSH 服务
运行以下命令自动完成配置开启密钥登录:
sed -i 's/^#*PubkeyAuthentication.*/PubkeyAuthentication yes/' /etc/ssh/sshd_config && \
systemctl restart sshd
在 Termius 的主界面,点击你的服务器 Host。
如果配置正确,你会通过密钥成功登录。
如果密钥有设置密码,Termius 会提示你输入密钥的 passphrase。
登录完成之后测试没问题,我们在禁用root以及密码登录:
sed -i 's/^#*PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config && \
sed -i 's/^#*PermitRootLogin.*/PermitRootLogin prohibit-password/' /etc/ssh/sshd_config && \
systemctl restart sshd
错误排查
1、检查覆盖配置
如果不生效,通过下面命令排查:
查看 Include /etc/ssh/sshd_config.d/*.conf
目录下的文件:
ls -l /etc/ssh/sshd_config.d/
检查是否有设置覆盖了 PasswordAuthentication
:
grep -r "PasswordAuthentication" /etc/ssh/sshd_config.d/
如果发现文件覆盖了主配置文件的 PasswordAuthentication
,删除或修改这些文件,确保设置为:
PasswordAuthentication no
2. 检查 SSH 服务实际加载的配置
通过以下命令查看 SSH 服务实际加载的配置:
sshd -T | grep -E "passwordauthentication|permitrootlogin|pubkeyauthentication"
输出应为
passwordauthentication no
permitrootlogin yes
pubkeyauthentication yes
如果输出与预期不符,说明配置被其他地方覆盖,需进一步检查。