美文网首页
SSH使用部署

SSH使用部署

作者: 吃可爱长大鸭 | 来源:发表于2019-10-08 19:45 被阅读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
    

    相关文章

      网友评论

          本文标题:SSH使用部署

          本文链接:https://www.haomeiwen.com/subject/wdripctx.html