zoukankan      html  css  js  c++  java
  • SSH服务

      SSH: (Secure Shell)的缩写,是建立在应用层和传输层基础上的安全协议,SSH是目前 较为可靠的专为远程登录会话和其他网络服务提供安全性的协议,数据在使用ssh方式传输的时候是加密的,即使别人截获也不知道是什么数据;为客户端提供安全的Shell环境,用于远程管理,默认端口:TCP 22 telnet 23
    SSH基于公钥加密(非对称加密)技术:
                  数据加密传输;
                     客户端和服务器的身份验证;
    相关软件包:

           

          配置文件参考:

             

                相关登录信息:

                 

            命令:可以用-p选项指定端口号登陆:
          ssh 192.168.1.108 -p 222           

    1》安装相关软件,默认已经安装;

         

      2》修改配置文件,用xshell软件远程登录:
      1>密码认证(默认使用,认证的用户需要本地存在,/etc/passwd /etc/shadow),

             简单配置:

             

             

       

          2>密钥认证:

             

          上述文件存放本地主机当前用户ssh连接过的服务器的公钥,存放在当前用户的家目录下的.ssh目录里,此文件不需要自己创建,ssh连接之后就会自动创建;
    ============= 公钥认证客户端具体流程(刚刚开始):  

         

            

          

           ==========================SSH公钥认证流程:

            

    实例分析:
    1》客户端用普通用户创建密钥对:

          

             注意:公钥和私钥,还有ssh配置文件的权限绝对不可以乱动,都是为600:

            

      2》将用户的公钥上传到服务器的root用户家目录下.ssh/authorized_keys:
       方法:

          

           

       3》在客户端进行验证,注意要用普通用户来登录服务器的root用户权限:

           

      ==============在xshell上使用密钥认证登录:

    密钥的功能可分为两种:

      数据加密;能保证所发送数据的机密性;
      数字签名:能保证数据完整性,身份验证和不可抵赖;



    ===============数字签名原理:

        

     ===============密钥的额外功能使用:
    1》定时可以在客户机上远程执行服务器上的脚本,而不用登录服务器?
           答:在客户机上写一个脚本触发服务器上的脚本,然后在客户机上执行计划任务就可以了,客户机与服务器之间必须配置密钥认证;

            

    2》通过SSH可以运行服务器中的窗口程序:
      ssh -X root@192.168.1.106
      然后运行相关窗口程序命令,不过客户端必须在图形界面下的虚拟终端上运行命令;             

      ===================问题:
    1>scp远程复制文件和ssh远程登录都可以使用-p来指定端口号;
    2>ssh-copy-id 只能使用22号端口;
    3>ssh的安全性问题?你有哪些措施?
      密钥认证;
      不允许root登录;
      只允许某些固定的IP地址ssh过来(使用TCPWrappers中的hosts.allow,hosts.deny);

         

            使用chkconfig --list 命令可以查看有哪些独立进程和超级进程     

             

      4>SSH日志存放地方?
      /var/log/messages
      /var/log/secure
      5>密钥文件的权限性问题?
      不可以随便改动,必须保持600权限,know_hosts文件也一样;
      6>SSH连接比较慢?
      将服务器中的配置文件sshd_config文件中的UseDNS选项注释去掉,并no,不让SSH服务器去进行DNS解析,这样可以节省大量时间;
      7>SSH远程登录执行脚本,如果突然网络断开了,脚本是否会继续执行?
      脚本会继续执行,当网络再次连接上后,如果客户端是在命令行上SSH连接的,那么客户端会自动再次连接上服务器;
      8>xshell中如何使用密钥连接服务器?
      Linux服务器首先生成一对密钥;将私钥发送给Windows客户端,并且将用公钥生成authorized_keys 文件;然后就可以在xshell端用密钥认证方式登录了;
      9>批量运维问题?
      使用要求:客户端与服务器之间要建立单向信任关系,密钥认证:
      pssh ------>parallel 并行 --->批量执行命令
      pscp------->批量传输文件

  • 相关阅读:
    OPENWRT 支持git
    LUCI MVC框架
    luci范例
    Hive | Hive可以避免进行MapReduce
    ORACLE日常-oracle中给date型字段insert into值
    ORACLE日常-ORACLE 中的 ROW_NUMBER() OVER() 分析函数的用法
    ORACLE日常-oracle字符串操作:拼接、替换、截取、查找
    HDFS中的shell操作
    java日常-map转成json
    java学习-reflection反射机制
  • 原文地址:https://www.cnblogs.com/xiaocheche/p/7595945.html
Copyright © 2011-2022 走看看