• Linux远程无密码登陆并远程执行脚本


    假设 A (192.168.20.59)为客户机器,B(192.168.20.60)为目标机;

    要达到的目的:
    A机器ssh登录B机器无需输入密码;
    加密方式选 rsa|dsa均可以,默认dsa

    ssh-keygen -t rsa #使用rsa加密

    二、具体操作流程

    单向登陆的操作过程(能满足上边的目的):
    1、登录A机器
    2、ssh-keygen -t
    [rsa|dsa],将会生成密钥文件和私钥文件 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub

    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa): [直接回车即可]
    Enter passphrase (empty for no passphrase): [若要建立无密码的ssh信任关系,这里直接回车!否则建立信任关系后,每次登陆远程机器均要求输入该密码]
    Enter same passphrase again: [直接回车]
    Your identification has been saved in /root/.ssh/id_rsa.
    Your public key has been saved in /root/.ssh/id_rsa.pub.
    The key fingerprint is:
    b4:de:66:2c:c1:04:ad:7c:48:7c:f7:94:71:09:85:21 usr1@localhost


    3、在B机创建目录:mkdir /root/.ssh

    将 .pub 文件复制到B机器的 .ssh 目录, 并

    cat /root/.ssh/id_dsa.pub >> /root/.ssh/authorized_keys

    或者

    cat /root/.ssh/id_rsa.pub | ssh root@192.168.20.60  'cat >> /root/.ssh/authorized_keys'
    4、大功告成,从A机器登录B机器的目标账户,不再需要密码了;(直接运行 #ssh 192.168.20.60

    双向登陆的操作过程:

    1、ssh-keygen做密码验证可以使在向对方机器上ssh ,scp不用使用密码.具体方法如下:
    2、两个节点都执行操作:#ssh-keygen -t rsa
      然后全部回车,采用默认值.

    3、这样生成了一对密钥,存放在用户目录的/root/.ssh下。
    将公钥考到对方机器的用户目录下 ,并将其复制到/root/.ssh/authorized_keys中(操作命令:#cat /root/.ssh/id_dsa.pub >> /root/.ssh/authorized_keys )。

    4、设置文件和目录权限:

    设置authorized_keys权限
    $ chmod 600 authorized_keys
    设置.ssh目录权限
    $ chmod 700 -R .ssh

    5、要保证.ssh和authorized_keys都只有用户自己有写权限。否则验证无效。(今天就是遇到这个问题,找了好久问题所在),其实仔细想想,这样做是为了不会出现系统漏洞。

    远程执行脚本示例:

    1、在A机创建脚本:

    $ vi test.sh

    #!/bin/bash
    echo "shell start"
    ssh root@192.168.20.60 "sh /home/script/hello.sh"

    2、在B机创建脚本

    $ vi /home/script/hello.sh

    #!/bin/bash
    echo "hello"

    3、在A机运行脚本test.sh

    $ sh test.sh

    shell start
    hello
  • 相关阅读:
    left join
    order by 对null的处理
    checkbox不显示,试试去掉-webkit-appearance这个样式
    浅谈ES6的let和const的异同点
    ES6中箭头函数的作用
    HTML页面每次打开的时候都清除页面缓存
    解决HTML加载时,外部js文件引用较多,影响页面打开速度问题
    JQuery和Zepto的差异(部分)
    vue-router 快速入门
    vue-resource插件使用
  • 原文地址:https://www.cnblogs.com/sandea/p/4899413.html
Copyright © 2020-2023  润新知