SSH使用部署

2019-10-08  本文已影响0人  吃可爱长大鸭

ssh 远程连接管理服务器 加密传输协议 tcp/22 支持root用户登录

telnet 管理防火墙,路由器... 明文传输协议 tcp/23 支持普通用户登录

ssh相关服务

ssh

ssh  root@172.16.1.31 -p 22
ssh 命令
root  用户
@  分隔符
172.16.1.31  主机ip
p  指定端口

ssh 172.16.1.31

scp

类似于rsync

推:
scp /etc/passwd root@172.16.1.31:/tmp
#本地的/etc/passwd文件 推送到172.16.1.31的/tmp目录下

拉
scp root@172.16.1.31:/tmp/passwd /tmp
#远程服务器/tmp/passwd文件拉取到本地的/tmp目录下

-r   递归传输,如果传输的是目录,需要加-r参数
-l   限速
-p   保持文件属性
-P   指定端口   

sftp

sftp root@172.16.1.31    #默认远程机器的/root目录

sftp> get /data/bg.jpg /root/
拉取远程机器/data/下面的bg.jpg文件到本地目录/root下

sftp> put /root/hostname_ip.sh /data
推送本地文件/root/hostname_ip.sh到远程地址的/data目录下

免密登录

#生成秘钥对
ssh-keygen

#传输公钥到需要免密登录的服务器
ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.1.31
vim ~/.ssh/authonized.keys        别忘记授权  chmod 600 ~/.ssh/authonized.keys

ssh优化

Port 9292                       # 变更SSH服务远程连接端口
PermitRootLogin         no      # 禁止root用户直接远程登录
PasswordAuthentication  no      # 禁止使用密码直接远程登录
UseDNS                  no      # 禁止ssh进行dns反向解析,影响ssh连接效率参数
GSSAPIAuthentication    no      # 禁止GSS认证,减少连接时产生的延迟

1.在管理机生成密钥

[root@m01 ~]#  ssh-keygen -C 1003451503@qq.com

2.在 管理机 上下发公钥给 nfs服务端

[root@m01 ~]#  ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.1.31

3.管理机 通过ssh命令连接nfs服务器,如果能实现免密码登陆则ok

[root@m01 ~]#  ssh root@172.16.1.31

4.将ssh登陆主机的信息放入一个文件,当我执行文件时就自动的链接到该主机了.....

[root@m01 ~]#  echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@m01 ~]#  vim r_31
[root@m01 ~]#  chmod +x r_31
[root@m01 ~]#  mv /usr/local/bin/r_31
[root@m01 ~]#  r_31

5.将从WIndows下复制好的公钥粘贴至跳板机~/.ssh/authorized_keys中,然后测试

[root@m01 ~]#  cd ; umask 077;  mkdir -p .ssh ; cd .ssh
[root@m01 ~]#  vim ~/.ssh/authorized_keys

SSH安全优化

[root@m01 ~]# 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

[root@m01 ~]#  yum install fail2ban fail2ban-firewalld mailx -y           #安装fail2ban

4.配置fail2ban规则.local会覆盖.conf文件

[root@m01 ~]#  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.启动服务,并检查状态

[root@m01 ~]#  systemctl start fail2ban.service
[root@m01 ~]#  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 root@10.0.0.31
(3)31服务器上查看debug日志,发现身份验证被拒绝,目录的所有权错误。
    Authentication refused: bad ownership or modes for directory /root
上一篇下一篇

猜你喜欢

热点阅读