ssh:Secure Shell,属于应用层协议,工作在tcp的22端口。相对于telnet,ssh通信过程及认证过程都是加密的,故更加安全。

 在linux中,一般使用openssh来实现ssh

 ssh的认证有口令认证和密钥认证


   一、基于口令的认证

     1、        客户端发起连接请求

     2、        服务端发送自身公钥给客户端,由客户端决定是否接受(ssh客户端接收一个服务端的密钥                           后,密钥保存在客户端当前用户的家目录下的.shh目录中的known hosts文件中)

     3、        客户端生成随机数当做对称密码

     4、        将随机密码用服务端公钥加密发送给服务端


   二、基于密钥的认证

     客户端自身产生一对密钥,之后将公钥存到服务器对应用户的家目录的.ssh/authorized_keys      或.ssh/authorized_key2中,此后,该客户端在连接时无需输入密码;为确保安全,.ssh目录的      权限应为700


 ssh配置使用:

   服务器端:

     主配置文件:/etc/ssh/sshd_config

       对该文件一些常见设置说明:

        

         Listenaddress 0.0.0.0     #提供服务的地址(若全0表示服务器上所有的地址都                                                                               启用)

        Keyregenerationinterval     #客户端产生的非对称秘钥能使用的时间

        Permitrootlogin          #是否允许管理员直接登录

        Maxauthtries            #设置最多的尝试次数

        Rsaauthentication         #是否支持rsa认证

        Pubkeyauthentication       #是否支持秘钥认证

        Passwordauthentication      #是否支持口令认证

                    AllowUsers                                 #指定允许特定用户使用ssh连接

                    DenyUsers                                  #禁止特定用户使用ssh连接

            当需要限制IP的登录时,可编辑/etc/hosts.deny和/etc/hosts.allow文件

             wKioL1ccu1GR2wqMAAAhIrfL7Eo204.png

          wKioL1ccvD3RUWDfAAAUAPUZZms902.png

          设置好配置文件后,运行service sshd start即可开启ssh服务


    客户端:

               发起ssh连接:

                     ssh USERNAME@HOST

                     ssh -l USERNAME HOST

                     ssh USERNAME@HOST ‘COMMAND'  #在远程主机上执行命令并返回结果后断开连                                                                                            接

           如不指定用户名时,会以客户端当前用户登陆远程主机

       当要使用密钥认证时,连接前客户端要做的准备工作:

         ① ssh-keygen -t rsa     #产生一对密钥,密钥默认保存在~/.ssh/目录下(私钥为                             id_rsa;公钥为id_rsa.pub)

         ② ssh-copy-id -i ~/.ssh/id_rsa.pub '-p ?? USERNAME@HOST'  #将产生的公钥复制                            到服务器对应用户的家目录下(??为ssh监听的端口)


使用ssh注意事项:

  1、密码应该经常换且足够复杂

  2、使用非默认端口

  3、禁止管理员直接登录,应先以普通用户登录,再切换到root

  4、仅允许有限用户登录

  5、限制客户端地址

  6、使用版本2

  7、使用基于密钥的认证,但应将.ssh目录权限设置为700


scp命令:

  用于文件复制,基于ssh服务

   用法:

     从远程主机下载文件: scp USERNAME@HOST:/path/to/somefile /path/to/local

     上传文件到远程主机: scp /path/to/local USERNAME@HOST:/path/to/somefile

    scp还可使用许多选项,选项用法与cp相同