Linux SSH开启密钥登录 禁止Root用户登录

ssh默认采用密码方案,不仅面临弱密码安全挑战,复杂的还不便于记录。我就是VPS渐渐多了起来,每个服务器都分配一个复杂密码,每一次登录都要翻开备忘录查找。这时候密匙登录就成了比较的解决方案,一把钥匙游走所有门锁。

目前我服务器环境已经从centos迁移到Debian,大部分实例都会基于Debian运行。

如果没有安装ssh,先安装

yum install openssh-server
apt install -y openssh-server

以下 ssh-keygen 命令默认在用户目录 ~/.ssh 中生成 4096 位 SSH RSA 公钥和私钥文件。

ssh-keygen -t rsa -b 4096
图片[1]-Linux SSH开启密钥登录 禁止Root用户登录-不念博客

使用当前登录进入用户目录,输入 cd ~/.ssh/ 会出现id_rsaid_rsa.pub这两个文件,id_rsa是私钥,id_rsa.pub是公钥,将公钥写入authorized_keys中。将id_rsa私钥下载并保存好,这就是一把钥匙。

# 创建文件
touch authorized_keys

# 写入公钥写入
cat id_rsa.pub >> authorized_keys

# 查看创建文件
ls -al ~/.ssh

这个时候就要给相关文件设置权限,不然可能无法工作。如果不设置权限,如果服务器是多用户就会存在跨用户查看公钥文件,查看无所谓,如果手贱给你修改了那就无法正常登录。

chmod 600 authorized_keys
chmod 700 ~/.ssh

现在锁(密钥)已经配置好,那就来测试钥匙是不是能正常打开门。打开 /etc/ssh/sshd_config 文件,修改其中的关键参数。

# yes表示允许密钥登陆
PubkeyAuthentication yes

# 指定密钥的文件位置
AuthorizedKeysFile      .ssh/authorized_keys .ssh/authorized_keys2

到此,SSH密钥就配置完成,重启ssh服务即可上锁测试/etc/init.d/ssh restart

图片[2]-Linux SSH开启密钥登录 禁止Root用户登录-不念博客

测试连接正确后,进行ssh加固。

# 删除私钥和公钥
rm -rf ~/.ssh/id_rsa
rm -rf ~/.ssh/id_rsa.pub


vim /etc/ssh/sshd_config
# 不允许使用密码登录
PasswordAuthentication no

禁止root用户登录

禁用root登录时候,需要新建一名用户,并授予sudo权限,才好设置禁止root用户登录,不然禁止了就没有用户可以登录。

vim /etc/ssh/sshd_config

# 禁止root用户登录
PermitRootLogin no
© 版权声明
THE END