SSH使用密钥登录并禁止密码登录

Posted alsoalso

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSH使用密钥登录并禁止密码登录相关的知识,希望对你有一定的参考价值。

#1 新建用于登录的用户
useradd -p `echo "KYmO4ClPt1" | openssl passwd -1 -salt $(< /dev/urandom tr -dc \'[:alnum:]\' | head -c 32) -stdin` 9pZ7IER8

KYmO4ClPt1: 用于ssh登录的用户密码

9pZ7IER8: 用于ssh登录的用户名

#2 切换到登录用户
su 9pZ7IER8

#3 创建用于存放秘钥的文件夹,路径/home/ssh用户

cd
mkdir .ssh
cd .ssh

#4 生成SSH密钥对

PS:密钥生成后一定先传输到本地,防止无法连接到远程主机,并且要记录密码密码。

ssh-keygen -t rsa

#5 注册公钥文件
cat id_rsa.pub >> authorized_keys
chmod 644 authorized_keys
cd ..
chmod 700 .ssh

#6 切换到root用户,修改ssh配置文件
su root

#7 开启RSA验证
sed -i -e \'s/#RSAAuthentication yes/RSAAuthentication yes/g\' /etc/ssh/sshd_config
sed -i -e \'s/#PubkeyAuthentication yes/PubkeyAuthentication yes/g\' /etc/ssh/sshd_config
sed -i -e \'s/#AuthorizedKeysFile/AuthorizedKeysFile/g\' /etc/ssh/sshd_config

#8 禁止用户采用password登录
sed -i -e \'s/#AuthorizedKeysFile/AuthorizedKeysFile/g\' /etc/ssh/sshd_config
sed -i -e \'s/PasswordAuthentication yes/PasswordAuthentication no/g\' /etc/ssh/sshd_config
sed -i -e \'s/UsePAM yes/UsePAM no/g\' /etc/ssh/sshd_config

#9 禁止用户以root身份进行登录
sed -i -e \'s/#PermitRootLogin yes/PermitRootLogin no/g\' /etc/ssh/sshd_config

#10 修改端口号
sed -i -e \'s/#Port 22/Port 41042/g\' /etc/ssh/sshd_config

#11 修改iptables
sed -i \'11s/^/\\-A INPUT -m state --state NEW -m tcp -p tcp --dport 41042 -j ACCEPT\\n/g\' /etc/sysconfig/iptables
service iptables restart

#12 重启sshd服务

PS:执行下面操作前,确认密码在本地,防止无法连接到远程主机。
service sshd restart

以上是关于SSH使用密钥登录并禁止密码登录的主要内容,如果未能解决你的问题,请参考以下文章

ssh使用密钥自动登录,禁止口令登录

Linux安全之SSH 密钥创建及密钥登录,禁止密码登陆

SSH使用密钥登录并禁止口令登录实践

Linux为 SSH 服务器配置密钥认证登录

SSH公钥登录且禁止密码登录及更改默认端口

ssh密钥登录