Termius关闭root账户密码访问 debian/centos/ubuntu系统启用密钥访问教程

在 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

如果输出与预期不符,说明配置被其他地方覆盖,需进一步检查。

By 行政