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