Debian 13禁用SSH密码登录并启用密钥登录

AI大语言模型

生成密钥对(推荐在本地生成):

ssh-keygen -t rsa
  • 公钥文件:id_rsa.pub
  • 私钥文件:id_rsa

添加公钥到远程服务器:

ssh-copy-id -i ~/.ssh/id_rsa.pub root@远程服务器IP

如果是在远程服务器生成的密钥对:

1、添加公钥到authorizedkeys:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorizedkeys

2、下载私钥到本地:

scp root@远程服务器IP:~/.ssh/id_rsa ./

3、删除远程服务器上的私钥:

rm ~/.ssh/id_rsa

注意:从远程服务器下载私钥有泄漏风险,推荐在本地生成密钥对。

禁用SSH密码登录

测试使用密钥登录远程服务器:

ssh -i ~/.ssh/id_rsa root@远程服务器IP

确保使用密钥能正常登录远程服务器后再禁用密码登录:

nano /etc/ssh/sshd_config.d/00-disable-password.conf

粘贴如下内容:

PasswordAuthentication no
PubkeyAuthentication yes

重启SSH服务:

/etc/init.d/ssh restart

关于SSH配置文件加载顺序

Debian 13云服务器版本有以下配置文件:

50-cloud-init.conf

该配置文件中开启了密码登录:

PasswordAuthentication yes

网上的教程通常使用如下文件名称:

99-disable-password.conf

SSH配置文件是按字母数字顺序加载,先加载到的配置项生效。所以,如果配置文件名称以99开头,会导致不生效。

检测生效的配置:

sshd -T | grep passwordauthentication
AI大语言模型