linux运维开发之路(七)— ssh服务篇

一、ssh简介
       ssh全称为secure shell
       可以通过网络在主机中开启shell的服务
       客户端软件   sshd
            连接方式:

                   ssh  [email protected]          ## 文本模式的链接

                   linux运维开发之路(七)— ssh服务篇
                  ssh  [email protected]  -X    ## 可以在链接成功后开启图形

                   linux运维开发之路(七)— ssh服务篇
       注:第一次连接陌生主机时要建立认证文件所以会询问是否建立,需要输入yes,
               再次连接此台主机时,因为已经生成/root/.ssh/know_host文件,所以不需要再次输入yes

 阅读必看:以下内容的实现均是在desktop虚拟机和server虚拟机里操作实现的,desktop虚拟机作为客户端(client),其ip为172.25.254.106,server虚拟机作为服务端(server),其ip为172.25.254.206,
       远程复制:
                scp  file  [email protected]:/root/Desktop/           ## 服务端将文件file 上传到客户端的桌面上,在客户端的桌面上可以看到file文件。

                linux运维开发之路(七)— ssh服务篇
                scp  -r  /test  [email protected]:/root/Desktop/    ## 加上-r,递归的上传test目录以及其下的内容。

                linux运维开发之路(七)— ssh服务篇           
                scp  [email protected]:/etc/passwd .           ## 服务端下载客户端/etc/passwd文件到当前位置下。 

                linux运维开发之路(七)— ssh服务篇                 

二、sshd的key认证
     1.生产**
         ssh-******   ## 生成**

         在服务端生成**并且显示/root/.ssh/文件,生成了id_rsa和id_rsa.pub文件,id_rsa称为私钥(钥匙),id_rsa.pub称为公钥(锁)

         linux运维开发之路(七)— ssh服务篇
     2.加密服务  
         ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]        ## 加密

         用生成的锁来加密服务器,并且查看/root/.ssh/,看到新生成了一个authorized文件,这个文件的生成表示加密成功。

         linux运维开发之路(七)— ssh服务篇

         linux运维开发之路(七)— ssh服务篇        
     3.分发钥匙
          scp /root/.ssh/id_rsa [email protected]:/root/.ssh/

          把钥匙给客户端,使客户端可以在不用输入密码的情况下,直接访问服务端。

          linux运维开发之路(七)— ssh服务篇
     4.测试
         ssh  [email protected] -X

        在客户端访问服务器端验证效果,可以不需要输入密码直接进入服务端。

        linux运维开发之路(七)— ssh服务篇              

三、sshd的安全认证

      vim  /etc/ssh/sshd_config    ## 编辑sshd_config文件,

      进入文件显示内容的部分截图如下:
         linux运维开发之路(七)— ssh服务篇
       PasswordAuthentication   yes | no     ## 选择是否通过验证密码登陆

       文件中默认为yes,即可以选择密码登陆,若改为no,即不允许密码登陆,在这里要注意上面设置的key认证,要先删除所有的key认证,再尝试登陆,不然还会以key认证的方式直接登陆,导致你的验证出现错误,并且在每次编辑/etc/ssh/sshd_config后,都要用命令systemctl  restart  sshd.server重新启动sshd(以下所有命令的操作都需要重新启动sshd,方可生效),不然不会生效,也会导致验证时不能得到预期的结果。

         linux运维开发之路(七)— ssh服务篇

        在客户端进入设定PasswordAuthentication  no后,使用服务端去访问客户端,请求被拒绝,访问不了客户端。

        linux运维开发之路(七)— ssh服务篇
       PermitRootLogin          ## 是否允许root用户通过sshd服务的认证

       linux运维开发之路(七)— ssh服务篇      
       Allowusers  ...    白名单,指定用户访问
       Denyusers          黑名单,限制用户访问

       vim  /etc/ssh/sshd_config,进入文件,可在任意位置编辑白名单和黑名单,如下允许student用户通过sshd服务认证,不允许westos用户通过sshd服务认证。

       linux运维开发之路(七)— ssh服务篇
       systemctl  restart  sshd.server    ## 设定后要重新启动(每次设定后一定要运行此条命令)

四、添加sshd登陆信息
       vim  /etc/motd       ## 进入编辑的内容就是登陆后显示的信息

       在client端编辑登陆信息

       linux运维开发之路(七)— ssh服务篇

       在server端访问client端,登陆信息包含编辑的内容。

        linux运维开发之路(七)— ssh服务篇
五、用户的登陆审计
       1. w   ## 查看正在使用当前系统的用户

            linux运维开发之路(七)— ssh服务篇
           w -f   ## 查看使用来源  

            linux运维开发之路(七)— ssh服务篇
            w -i   ## 显示ip

            linux运维开发之路(七)— ssh服务篇
       2. last       ##  查看使用过并退出的用户信息(部分截图) 

            linux运维开发之路(七)— ssh服务篇
       3. lastb      ##  试图登陆但没成功的用户

            linux运维开发之路(七)— ssh服务篇