对于经常要连接服务器进行交互的人来说,有很多种方式,最多的就是使用一些比较成熟的应用,如xshell,finalshell,xftp等.在上一篇文章中我们搭建了一个新的终端,这次来使用终端来进行服务器的交互,包括访问以及文件的上传和下载.

命令

1
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
协议的使用

我们通常连接到服务器使用的是ssh协议,无论使用的是什么软件,其实底层的协议以及命令是一样的.通常在我们连接服务器时需要做哪些事呢?

  1. 首先,既然要用到协议,那就需要协议的载体,也就是应用,对一般服务器来说,系统内置的都会有openSSL,openSSL的详细说明,有了这个东西我们就可以使用ssh协议进行通信了

  2. 通信时身份的校验,在ssh通信过程中,使用到了非对称加密的算法,我们先不研究算法,直接应用,我们需要在我们的通信双方生成自己的公钥和私钥进行加密传输

    1. windows生成: 可以在我们的终端中,输入 ssh-keygen连续回车,即可在我们的用户目录下创建一个.ssh文件夹,文件夹中一般会有三个文件,一个是私钥,一个带pub的就是我们的公钥,还有一个knowhost是我们每次连接一个新的服务器时生成的一个标识,也就是连接时询问我们的yes or no
    2. linux生成: ssh-keygen~/.ssh/文件夹下会生成同样的文件,归根揭底是因为文件系统的划分不同,逻辑上大同小异
连接方式

前面我们说了可以使用很多的成熟的软件进行连接,但是今天我们使用最基本的也是最底层的当然也是最方便快捷的方式,并且基于我们上次搭建的命令行的环境,

开始连接并配置免密登陆
  1. 打开我们的cmder

    1. 使用命令 ssh name@server_ip ,name为服务器的用户名,后面是服务器的地址,回车之后会让你输入服务器的密码,输入密码就可以进行和服务器进行交互了

      1590153499836

  2. 设置免密登陆

    1. 我们发现这样是可以不借助其他软件,但每次都要输入密码,比较的繁琐,我们配置免密登陆

    2. 原理 : 在我们使用其他软件连接的时候也可以进行免密连接,其实那是因为软件帮我们屏蔽掉了一些底层的东西,原理都一样,就是把自己的公钥放到需要访问的服务器的白名单內

    3. 开始操作: 复制我们本地的公钥,用编辑器打开然后复制

      1590155382342

    4. 进入到服务器的 .ssh文件夹在,新增文件 authorized_keys 将我们复制的公钥复制进去,但是要以行的形式,如果多条公钥记得要换行,可以使用刚刚学习的cmder里进行操作

      1
      2
      3
      4
      
      cd ~/.ssh
      vim authorized_keys
      //在linux下的 vim 中粘贴会从默认的寄存器中读取而不是系统的,所以为了方便我们可以在 本地新建好一个文件,然后上传到服务器的对应目录里是一样的.
      然后我们就可以使用命令 ssh name@ip 直接进行登录了
      

      1590156326761

    ​ 5. 接下来我们就可以使用cmder进行连接服务器了,但是有些时候并不会保持长连接,这个应该会有办法,可以查阅一下资料.