shell脚本ssh登录并执行命令_ssh免密登录记录

  • 最后要达到的效果:
  • 一台机器可以免密登录其他两台机器。
  • 这里是要达到192.168.182.129免密登录192.168.182.130192.168.182.131两台机器。

1、安装ssh(rpm或者yum或者还有别的都可以,不累述)

2、配置/etc/hosts文件(本地DNS解析文件),方便使用“简短的字符串”访问“IP地址”

例如

192.168.182.129 linux129
192.168.182.130 linux130
192.168.182.131 linux131

使用linux129 代替 192.168.182.129

使用linux130 代替 192.168.182.130

使用linux131 代替 192.168.182.131

3、让linux129的hadoop用户免密登录linux130和linux131机器上的hadoop用户

在linux129机器hadoop用户执行

$ssh-kengen -t rsa -P "" #在/home/hadoop/.ssh/目录下,生成id_rsa和id_rsa.pub。

把linux129机器上的id_rsa.pub(129的公钥)文件传给linux130和linux131的hadoop用户/home/hadoop/.ssh/目录下的authorized_keys文件中。

d26b621ae482981fe0f497592a0a4d1d.png
公钥(id_rsa.pub)放置位置示意图

注意:.ssh目录的权限必须是700

authorized_keys文件的权限必须是600

否则免密登录不好使。

4、接下来就可以免密登录了。

在Linux129上使用如下命令:

ssh hadoop@linux130  #或者 ssh hadoop@192.168.182.130  登录192.168.182.130
ssh hadoop@linux131  #或者 ssh hadoop@192.168.182.131  登录192.168.182.131

第一次有可能会提示:

The authenticity of host 'linux130 (192.168.182.130)' can't be established.

Are you sure you want to continue connecting (yes/no)? yes

意思是:192.168.182.130的可信度不能确定

敲入一次yes即可。

以后linux129即可免密登录linux130 和 linux131

  • CentOS Linux release 7.7.1908 (Core) 亲测可用。

另:

如果需要使用ssh免密执行远程服务器上的shell命令,且执行的命令需要用到远程服务器上的环境变量,则可以在远程服务器的~/.bashrc或者/etc/bashrc文件中配置需要用到的环境变量。

例如:

linux129需要ssh免密在linux130和linux131上执行的shell命令(请注意需要时shell,直接执行命令取不到环境变量,原因待查),则在linux130和linux131的/etc/bashrc文件中添加环境变量。

如图:

56421d7c8f55da644eb94a4a53c13bd9.png
linux129执行linux130和linux131上的1.sh(1.sh中用到了 环境变量AA)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值