博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux远程无密码登陆并远程执行脚本
阅读量:5758 次
发布时间:2019-06-18

本文共 1585 字,大约阅读时间需要 5 分钟。

假设 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/bashecho "shell start"ssh root@192.168.20.60 "sh /home/script/hello.sh"

2、在B机创建脚本

$ vi /home/script/hello.sh

#!/bin/bashecho "hello"

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

$ sh test.sh

shell starthello

 

转载地址:http://xivkx.baihongyu.com/

你可能感兴趣的文章
MySQL 8.0 压缩包版安装方法
查看>>
TensorFlow系列专题(六):实战项目Mnist手写数据集识别
查看>>
JS中this的4种绑定规则
查看>>
Netty Pipeline源码分析(2)
查看>>
@Transient注解输出空间位置属性
查看>>
Ansible-playbook 条件判断when、pause(学习笔记二十三)
查看>>
开发者报 | Github造假产业链曝光,花钱就能买Star;黑客又多一个可以偷你密码的方法了...
查看>>
git 相关开发常用
查看>>
编码服务正在步入云端
查看>>
javascript对象数组的二维比较和插入
查看>>
【CodeForces】585 E. Present for Vitalik the Philatelist
查看>>
阿里数据库内核月报:2017年02月
查看>>
细节之处 这么长时间才知道 哎 不应该
查看>>
Codeforces Round #288 (Div. 2) E. Arthur and Brackets [dp 贪心]
查看>>
转 C++中不能声明为虚函数的有哪些函数
查看>>
[开源]KJFramework.Message 高性能二进制消息框架 - 多元素数组的高性能优化
查看>>
补全Java基础(二)JavaSE基础
查看>>
Codelabs & 研讨会, 小小一隅,大大收获!
查看>>
《必备干货!程序员的自我修养&高效学习方法》观后笔记
查看>>
Sonar 应用
查看>>