SSH远程登陆管理

一、SSH远程管理

1.SSH定义

  • SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能
  • SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令。因此SSH协议具有很好的安全性

2.SSH优点

  • 数据传输是加密的,可以防止信息泄漏
  • 数据传输是压缩的,可以提高传输速度

3.SSH配置文件

  • sshd 服务的默认配置文件是/etc/ssh/sshd_config
  • ssh_config和sshd_config都是ssh服务器的配置文件
    == 二者区别在于ssh_config是针对客户端的配置文件,sshd_config则是针对服务端的配置文件==

4.SSH客户端与与服务端

  • SSH客户端:Putty、Xshell、CRT
  • SSH服务端:OpenSSH
  • OpenSSH 是实现 SSH 协议的开源软件项目,适用于各种 UNIX、Linux 操作系统
  • CentOS 7系统默认已安装openssh相关软件包,并已将 sshd 服务添加为开机自启动

二、配置OpenSSH服务端

1、sshd_config配置文件的常用选项设置

如果设置了端口号 ssh登入需要 ssh -p 端口号 用户名@地址

vim /etc/ssh/sshd_config
Port 22 						//监听端口为22 
ListenAddress 0.0.0.0 					//监听地址为任意网段,也可以指定OpenSSH服务器的具体IP

LoginGraceTime 2m //登录验证时间为2分钟
PermitRootLogin no //禁止root用户登录
MaxAuthTries 6 //最大重试次数为 6

PermitEmptyPasswords no //禁止空密码用户登录
UseDNS no //禁用 DNS 反向解析,以提高服务器的响应速度

//只允许zhangsan、lisi、wangwu用户登录,且其中wangwu用户仅能够从IP地址为61.23.24.25 的主机远程登录
AllowUsers zhangsan lisi wangwu@61.23.24.25 //多个用户以空格分隔

//禁止某些用户登录,用法于AllowUsers 类似(注意不要同时使用)
DenyUsers zhangsan

    2、Allowusers与Denyusers

    Allowusers……    //仅允许某某用户登陆
     
     

      三、scp远程复制

      1.下行复制:将远程主机的/etc/passwd文件复制到本机

      scp root@192.168.71.20:/etc/passwd /root/passwd1
       
       

        2.上行复制:将本机的/etc/ssh目录复制到远程主机

        scp -r /etc/passwd/ root@192.168.71.20:/opt
         
         

          四、sftp安全FTP

          由于使用了加密/解密技术,所以传输效率比普通的FTP要低,但安全性更高,操作语法sftp与ftp差不多

          sftp root@192.168.71.20
          sftp> ls
          sftp> get 文件名		//下载件到ftp目录(下载和上传目录 -r)
          sftp> put 文件名		//复制(上传)文件到ftp目录
          sftp> quit		    //退出
          
           
           

            五、sshd服务支持验证方式

            sshd 服务支持两种验证方式:
            1.密码验证
            对服务器中本地系统用户的登录名称、密码进行验证。简便,但可能会被暴力破解,暴力破解可看之前博客有详细描述系统弱口令检测
            2.密钥对验证
            要求提供相匹配的密钥信息才能通过验证。通常先在客户端中创建一对密钥文件(公钥、私钥),然后将公钥文件放到服务器中的指定位置。远程登录时,系统将使用公钥、私钥进行加密/解密关联验证。能增强安全性,且可以免交互登录。
            当密码验证、密钥对验证都启用时,服务器将优先使用密钥对验证。可根据实际情况设置验证方式。

            vim /etc/ssh/sshd_config                        //编辑服务端主配置文件
            PasswordAuthentication yes 			//启用密码验证
            PubkeyAuthentication yes 		        //启用密钥对验证
            AuthorizedKeysFile .ssh/authorized_keys         //指定公钥库文件
            
             
             

              3.在客户端创建密钥对
              通过ssh-keygen工具为当前用户创建密钥对文件。可用的加密算法为RSA、ECDSA或DSA等(ssh-keygen命令的“-t”选项用于指定算法类型)。
              基本命令解释

              useradd zhangsan
              passwd zhangsan
              su - zhangsan
              ssh-keygen -t ecdsa                                  //以ecdsa算法生成验证密钥
              Generating public/private ecdsa key pair.
              Enter file in which to save the key (/home/admin/.ssh/id_ecdsa): 	//指定私钥位置,直接回车使用默认位置
              Created directory '/home/admin1/.ssh'.		    //生成的私钥、公钥文件默认存放在宿主目录中的隐藏目录.ssh/下
              Enter passphrase (empty for no passphrase): 	//设置私钥的密码
              Enter same passphrase again: 			//确认输入
              

              ls -l .ssh/id_ecdsa* //id_ecdsa是私钥文件,权限默认为600;id_ecdsa.pub是公钥文件,用来提供给 SSH 服务器

                2.此方法可直接在服务器的/home/zhangsan/.ssh/目录中导入公钥文本

                cd ~/.ssh/
                ssh-copy-id -i id_ecdsa.pub zhangsan@192.168.71.10
                 
                 

                  3.登入zhangsan用户验证结果

                  实例
                  在这里插入图片描述
                  在这里插入图片描述
                  在这里插入图片描述

                  六、在客户机设置ssh代理功能,实现免交互登录

                  ssh-agent bash    //开启ssh代理服务
                  ssh-add           //密钥添加到高速缓存中
                  Enter passphrase for /home/admin/.ssh/id_ecdsa:     //输入私钥的密码
                  

                  ssh zhangsan@192.168.71.10 //验证无需输入密码登入用户

                    在这里插入图片描述

                    七、TCP Wrappers 访问控制

                    TCP Wrappers 将TCP服务程序“包裹”起来,代为监听TCP服务程序的端口,增加了一个安全检测过程,外来的连接请求必须先通过这层安全检测,获得许可后才能访问真正的服务程序
                    大多数 Linux 发行版,TCP Wrappers 是默认提供的功能。rpm -q tcp_wrappers

                    (一)TCP Wrapper 保护机制的两种实现方式

                    1.直接使用 tcpd 程序对其他服务程序进行保护,需要运行 tcpd程序。
                    2.由其他网络服务程序调用 libwrap.so.链接库,不需要运行 tcpd 程序。此方式的应用更加广泛,也更有效率

                    (二)使用 ldd 命令可以查看程序的 libwrap.so.*链接库

                    ldd $(which ssh vsftpd)
                    TCP Wrappers 的访问策略
                    TCP Wrappers 机制的保护对象为各种网络服务程序,针对访问服务的客户端地址进行访问控制。
                    对应的两个策略文件为/etc/hosts.allow 和/etc/hosts.deny,分别用来设置允许和拒绝的策略。
                    格式:
                    <服务程序列表>:<客户端地址列表>
                    1.服务程序列表
                    ALL:代表所有的服务。
                    单个服务程序:如“vsftpd”。
                    多个服务程序组成的列表:如“vsftpd,sshd”。
                    2.客户端地址列表
                    ALL:代表任何客户端地址。
                    LOCAL:代表本机地址。
                    多个地址以逗号分隔
                    允许使用通配符 “*” 和 “?” ,前者代表任意长度字符,后者仅代表一个字符
                    网段地址,如 192.168.7. 或者 192.168.71.0/255.255.255.0
                    区域地址,如 “.benet.com”匹配 bdqn.com 域中的所有主机。

                    (三)TCP Wrappers 机制的基本原则:

                    首先检查/etc/hosts.allow文件,如果找到相匹配的策略,则允许访问;
                    否则继续检查/etc/hosts.deny文件,如果找到相匹配的策略,则拒绝访问;
                    如果检查上述两个文件都找不到相匹配的策略,则允许访问。
                    “允许所有,拒绝个别”
                    只需在/etc/hosts.deny文件中添加相应的拒绝策略
                    “允许个别,拒绝所有”
                    除了在/etc/hosts.allow中添加允许策略之外,还需要在/etc/hosts.deny文件中设置“ALL:ALL”的拒绝策略。
                    若只希望从IP地址为12.0.0.1的主机或者位于192.168.80.0/24网段的主机访问sshd服务,其他地址被拒绝

                    vi /etc/hosts.allow
                    sshd:12.0.0.1,192.168.71.*
                    
                    • 0
                      点赞
                    • 0
                      收藏
                      觉得还不错? 一键收藏
                    • 0
                      评论
                    评论
                    添加红包

                    请填写红包祝福语或标题

                    红包个数最小为10个

                    红包金额最低5元

                    当前余额3.43前往充值 >
                    需支付:10.00
                    成就一亿技术人!
                    领取后你会自动成为博主和红包主的粉丝 规则
                    hope_wisdom
                    发出的红包
                    实付
                    使用余额支付
                    点击重新获取
                    扫码支付
                    钱包余额 0

                    抵扣说明:

                    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
                    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

                    余额充值