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
使用当前登录进入用户目录,输入 cd ~/.ssh/
会出现id_rsa
、id_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
测试连接正确后,进行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