linux建立ssh、scp互信


linux建立互信(体现在ssh与scp免密码登录)

     linux在操作两台服务器的时候,比如一台服务器是A,另一台服务器是B,现在我们想A服务器ssh或者scp到服务器B上的时候无需输入密码即可完成登录(ssh)和文件的复制(scp),那么按照正常的linux命令是需要输入密码的,若不输入密码即可完成这两种操作,那就是说A服务器与B服务器之间建立了互信,什么是互信,给大家举个例子:

     互信原则其实就像打仗一样,A军要得到B军的情报,那么A军就需要把A的间谍安排在B中军营中,并且给该间谍稍微做点修饰,有了间谍之后,A军想要得到B军的情报就是轻而易举的事情了,通道自然就搭建起来了。
    
以下的互信都是针对从A服务器inm用户到B服务器inm用户,无论是A服务器还是B服务器,是什么用户就在什么用户上进行操作,步骤大致可分为:

    
    1、在A服务器的inm用户下输入ssh-keygen -t rsa命令,注意ssh-keygen -t rsa的ssh后面没有空格,若有空格的话会报Bad escape character 'ygen'错误。然后持续回车,直到命令结束。这时会在~/.ssh/目录下生成id_rsa(私钥)和id_rsa.pub(公钥)两个文件。只需要关注id_rsa.pub这个文件。

    

   2、在B服务器inm用户下的~/.ssh/下执行输入vi ./authorized_keys,去A服务器的~/.ssh目录下执行cat id_rsa.pub命令,将返回的结果粘贴到B服务器的authorized_keys文件夹里面然后保存。
      
   
   3、授权。一定要授权不然你会发现前两步做了是无效的,对B服务器的authorized_keys进行授权,授权命令是chmod 700 authorized_keys
  
   以上三个步骤均完成以后,ssh和scp互信就建立好了,这是就可以从服务器A上免密码ssh或者scp到服务器B上了,若还有其他服务器也想与B服务器建立互信原则,那么只需要authorized_keys继续追加在其他服务器上产生的公钥文件里面的内容即可。若想从B到A,那么就要把B的间谍派到A即可,原理亦同。