zoukankan      html  css  js  c++  java
  • Linux SSH , SCP 建立信任关系(免密传输)

    最近有个需求,Jenkins需要将war传输到各个项目节点中,所以需要远程执行各个节点的shell脚本.但是中间有个输入密码的过程,在自动化部署中是行不通的,故需要增加免密登录.具体如下:

    如果想在 A 这太机器上可以不需要密码就 ssh 到 B 、 C 两台机器上,可以采用如下的方法:

    1.

      A机器上 

    ssh-keygen -t rsa

    如果A机器上的目录(home/.ssh/,如果是root用户,则目录是在root/.ssh/)没有 authorized_keys 文件,那么:

    cp /home/xxx/.ssh/id_rsa.pub /home/xxx/.ssh/authorized_keys

    此时A机器的目录是这样的:

    2.

      B,C机器上:

    ssh-keygen -t rsa

      B,C机器的目录是这样的:忽略known_hosts文件,系统自动生成的.

      

    3.

       将B,C机器中的id_rsa.pub的内容cat到A机器的 authorized_keys 中去:

      然后:

    cat [B,C机器的id_rsa.pub文件] >> [A机器的authorized_keys文件]

    回车,完成;

    最后:

      

     在B和C机器上:  chmod 644 authorized_keys  这一步非常关键,必须保证 authorized_keys 只对其所有者有读写权限,其他人不允许有写的权限,否则 SSH 是不会工作的

    可以直接 ssh username@ 机器名了,同一台机器的不同用户直接也可以以这种方式来访问

     

    如果经过上面的步骤还是提示需要密码,注意一下权限问题,主要有三个权限

      (1) /home/username这目录的权限应该是700

      (2) /home/username/.ssh 这个目录的权限也应该是700

      (3) /home/username/.ssh/ authorized_keys这个文件的权限是644

    如果还是不正确,那么tail /var/log/secure一下这个日志文件,就能发现问题。

    参考文章:https://blog.csdn.net/xqhrs232/article/details/71159718 

  • 相关阅读:
    CF353D Queue(结论)
    CF1147C Thanos Nim(博弈论、结论推导)
    牛客:CBX and children(平衡树+二分+贪心)
    牛客:Gambling Monster(权值线段树+离散化+离线)
    剑指49.把字符串转换成整数
    剑指48.不用加减乘除做加法
    剑指47.求1+2+3+...+n
    剑指46.孩子们的游戏(圆圈中最后剩下的数字)
    剑指45.扑克牌顺子
    剑指44.翻转单词顺序
  • 原文地址:https://www.cnblogs.com/pongyc/p/9835899.html
Copyright © 2011-2022 走看看