1.在管理机生成密钥
[[email protected] ~]# ssh-keygen -C [email protected]
2.在 管理机 上下发公钥给 nfs服务端
[[email protected] ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
3.管理机 通过ssh命令连接nfs服务器,如果能实现免密码登陆则ok
[[email protected] ~]# ssh [email protected]
4.将ssh登陆主机的信息放入一个文件,当我执行文件时就自动的链接到该主机了.....
[[email protected] ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[[email protected] ~]# vim r_31
[[email protected] ~]# chmod x r_31
[[email protected] ~]# mv /usr/local/bin/r_31
[[email protected] ~]# r_31
5.将从WIndows下复制好的公钥粘贴至跳板机~/.ssh/authorized_keys中,然后测试
[[email protected] ~]# cd ; umask 077; mkdir -p .ssh ; cd .ssh
[[email protected] ~]# vim ~/.ssh/authorized_keys
SSH安全优化
[[email protected] ~]# vim /etc/ssh/sshd_config #编辑配置文件
SSH
Port 6666 # 修改sshd服务监听的端口 #减少被扫描到的几率
PasswordAuthentication no # no代表禁止使用密码的方式连接 #禁止所有用户使用密码远程连接
PermitRootLogin no # no代表禁止root用户直接远程连接
GSSAPIAuthentication no # 禁止GSS认证,减少连接时产生的延迟
UseDNS no # 禁止ssh进行dns反向解析,影响ssh连接效率参数
END
变更端口为6666,防止别人轻易的被扫描.
root用户无法通过密码登录,也无法通过秘钥登录,总之就是不行.
普通用户仅能通过秘钥登录,无法通过密码登录.
ssh-keygen生成秘钥非交互,注意,如果存在则会提示是否覆盖.
ssh-keygen -P "" -f ~/.ssh/id_rsa
SSH安全防护
fail2ban可以监控系统日志,并且根据一定规则匹配异常IP后使用Firewalld将其屏蔽,尤其是针对一些爆破/扫描等非常有效。
1.开启防火墙
systemctl start firewalld #开启防火墙
systemctl enable firewalld #开机自启防火墙
firewall-cmd --state
2.修改firewalld规则,启用Firewalld后会禁止一些服务的传输,但默认会放行常用的22端口, 如果想添加更多,以下是放行SSH端口(22)示例,供参考:
firewall-cmd --permanent --add-service=ssh --add-service=http #放行SSHD服务端口
firewall-cmd --reload #重载配置
firewall-cmd --list-service #查看已放行端口
3.安装fail2ban,需要有epel
[[email protected] ~]# yum install fail2ban fail2ban-firewalld mailx -y #安装fail2ban
4.配置fail2ban规则.local会覆盖.conf文件
[[email protected] ~]# vim /etc/fail2ban/jail.local
[DEFAULT]
ignoreip = 127.0.0.1/8
bantime = 86400
findtime = 600
maxretry = 5
banaction = firewallcmd-ipset
action = %(action_mwl)s
[sshd]
enabled = true
filter = sshd
port = 22
action = %(action_mwl)s
logpath = /var/log/secure
5.启动服务,并检查状态
[[email protected] ~]# systemctl start fail2ban.service
[[email protected] ~]# fail2ban-client status sshd
6.清除被封掉的IP地址
fail2ban-client set sshd unbanip 10.0.0.1
7.如果有ssh秘钥无法正常连接的情况,可以尝试使用如下的调试模式.开启ssh debug调试模式。
(1)31服务器上开启临时ssh服务 /usr/sbin/sshd -p 10001 -d
(2)61服务器*问 ssh -vvv -p 10001 [email protected]
(3)31服务器上查看debug日志,发现身份验证被拒绝,目录的所有权错误。
Authentication refused: bad ownership or modes for directory /root