非root用户sudo_ssh免密钥

目标:从服务器上ssh登陆后sudo免密钥执行相应的命令
环境介绍:
192.168.65.128 my1-
192.168.65.129 my2-
192.168.65.130 web224 # 步骤一:
# 每个节点执行(不是必须,但是建议这样做)
cat >>/etc/hosts <<EOF
192.168.65.128 my1-
192.168.65.129 my2-
192.168.65.130 web224
EOF # 场景介绍
# 现在有个删除缓存的操作。需要在192.168.65.128上执行,192.168..129和192.168.65.130的相应缓存文件也都一起被删除掉了
# 准备工作
# 每台机器上都创建一个账号
useradd gtuser
echo "gtuserpwd" | passwd --stdin gtuser
cat >>/etc/sudoers << EOF
gtuser ALL=NOPASSWD:/bin/rm -f /tmp/global_cache.log
EOF # 建立ssh免密钥互信
# 因为是从一台集中去执行,所以是单向免密钥 su - gtuser
# 每个节点都执行
ssh-keygen -t rsa # 一路回车
# 将公钥添加到认证文件中
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
# 并设置authorized_keys的访问权限
chmod ~/.ssh/authorized_keys # 只要在一个节点执行即可。这里在 192.168..128上执行
ssh 192.168.65.129 cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys
ssh 192.168.65.130 cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys # 分发整合后的文件到其它节点
scp ~/.ssh/authorized_keys 192.168.65.129:~/.ssh/
scp ~/.ssh/authorized_keys 192.168.65.130:~/.ssh/ # 测试时,第一次,需要输入密码,之后就不需要输入密码了。
# 在192.168.65.128上测试
ssh 192.168.65.129
ssh 192.168.65.130 # 在192.168.65.129上测试
ssh 192.168.65.129
ssh 192.168.65.130 # 在192.168.65.130上测试
ssh 192.168.65.128
ssh 192.168.65.129 # 删除,重新操作
# rm -fr /home/gtuser/.ssh/ # 编写脚本测试
cat >>/root/delete_cache.log <<EOF
#ssh -p -t gtuser@192.168.65.128 "sudo /bin/rm -f /tmp/global_cache.log; echo "/tmp/global_cache.log has been deleted"; echo `date`"
ssh -p -t gtuser@192.168.65.128 "sudo /bin/rm -f /tmp/global_cache.log"
ssh -p -t gtuser@192.168.65.129 "sudo /bin/rm -f /tmp/global_cache.log"
ssh -p -t gtuser@192.168.65.130 "sudo /bin/rm -f /tmp/global_cache.log"
EOF # 如果是root用户,类似的操作
scp ~/.ssh/authorized_keys gtuser@192.168.65.129:/home/gtuser/.ssh/
scp ~/.ssh/authorized_keys gtuser@192.168.65.130:/home/gtuser/.ssh/ sh /root/delete_cache.log
# 执行结果如下:
[root@my1- ~]# sh /root/delete_cache.log
Connection to 192.168.65.128 closed.
Connection to 192.168.65.129 closed.
Connection to 192.168.65.130 closed.
[root@my1- ~]#

非root用户sudo_ssh免密钥的更多相关文章

  1. linux 非root用户 ssh 免密码登录

    之所以要把这个记录下来 是因为它的确和root用户不一样root用户 不需要改动什么权限问题  只要生成私钥/公钥对 即可 但是一样的操作在普通用户上就出了问题了 折腾了老半天 ssh-keygen ...

  2. 非root用户ssh 执行 sudo远程机器免密钥

    非root用户ssh 执行 sudo远程机器免密钥 # 1.登陆192.168.1.10 ssh-keygen -t rsa # 一路回车 # 将公钥添加到认证文件中 cat ~/.ssh/id_rs ...

  3. 非root用户搭建hadoop伪分布式

    0.安装软件列表 jdk-7u25-linux-x64.tar.gz hadoop-2.5.0.tar.gz hadoop-native-64-2.5.0.tar   1.准备Linux环境(root ...

  4. MHA非root用户搭建测试

    最近一直在瞎搬砖,最大的感触是运维工作难做.不过废话不多说,最近被分配了一项比较有意思的task,尝试着非root用户搭建MHA并测试下能否成功漂移,以下是两天测试和文档编写的成果,分享给各位看客,欢 ...

  5. 【异常】ssh无法登录验证,非root用户ssh本机无法成功

    1 自己搭建的是伪分布式环境,需要以非root用户启动Hadoop集群,之前root已经配置了ssh免密登录,但是自己切换到hdfs用户重新生成了一套ssh key, 但是切换到hdfs始终无法成功登 ...

  6. 多个UID为0的用户如何实现root用户的免密

    文章目录 创建用户 创建用户密码 免密脚本 当前主机用户不是root 当前主机用户是root,远程主机多个用户uid为0 利用shell脚本实现远程主机uid为0的用户只有root一个 多个UID=0 ...

  7. ubuntu下非root用户下获得使用wireshark的权限

    在非root用户下不能使用wireshark用来抓包,所以需要进行以下操作: sudo groupadd wireshark sudo chgrp wireshark /usr/bin/dumpcap ...

  8. 非root用户安装软件

    下面简要说一下Linux下非root用户安装软件的一般流程: 1. 获取源代码,一般是wget方式,ubuntu可以使用apt-get source来获取源代码. 2. 解压源代码,一般使用tar - ...

  9. perl 下使用非root用户安装模块

    perl下安装模块可以使用cpan命令,但是通常我们不具有root用户权限,所以只能以sudo方式安装模块. 例如需要安装Net::SCP::Expect模块, 执行cpan Net::SCP::Ex ...

随机推荐

  1. hibernate一对多映射文件的配置

    其中一个Customer对应多个LinkMan Customer的映射文件 Customer.hbm.xml-------------->一对多 <?xml version="1 ...

  2. Redux 学习(1) ----- Redux介绍

    Redux 有三个基本的原则: 1,单一状态树,redux 只使用一个javascript 对象来保存整个应用的状态. 状态树样式如下: const state = { count: 0 } 2,状态 ...

  3. Springboot学习问题记录

    1.spring boot与cloud构建微服务,返回数据从json变成了xml 问题:本身spingboot项目是用@RestController注解,返回结果也是json格式,但是结合spring ...

  4. python 模块之-ffmpeg 中文参数对照表

    a) 通用选项 -L license-h 帮助-fromats 显示可用的格式,编解码的,协议的...-f fmt 强迫采用格式fmt-I filename 输入文件-y 覆盖输出文件-t durat ...

  5. Listview 包含 edittext 的解决方案

    转载:https://blog.csdn.net/qq_28268507/article/details/53666576 一. 前几天在群里聊天,碰到一个哥们问listview的itemview中包 ...

  6. Android Studio 导致C盘过大

    转载:http://blog.csdn.net/u010794180/article/details/48004415 这是一个可看可不看的文章,不可看是对与那些 C盘 容量不紧张的人而言:而我是属于 ...

  7. 数据库SQL SELECT查询的工作原理

    一般开发员只会应用SQL的四条经典语句:select,insert,delete,update.但是我从来没有研究过它们的工作原理,这篇我想说一说select在数据库中的工作原理. B/S架构中最经典 ...

  8. 安卓Android基础—第二天

    测试的相关概念 好的软件不是开发出来的,是不断测试出回来的 根据是否知道源代码 黑盒测试 白盒测试 根据测试的粒度 方法测试 单元测试 集成测试 系统测试 根据测试的暴力程度 压力测试(谷歌工程师提供 ...

  9. 用随机投掷飞镖法计算Pi值(Randomness Throwing dart Pi Python)

    画一个边长为r的正方形和半径为r的四分之一的圆(如下图所示),向上面随机投掷飞镖,通过计算落在星星区域和整体区域的飞镖比例,即可求出π值. 公式推导如下: 假设正方形的边长r为1,那么飞镖落在星星区域 ...

  10. 【BZOJ3997】【TJOI2015】组合数学 Dilworth定理 DP

    题目描述 有一个\(n\times m\)的网格图,其中某些格子有财宝,每次从左上角出发,只能向下或右走.问至少走多少次才能将财宝捡完. 此对此问题变形,假设每个格子中有好多财宝,而每一次经过一个格子 ...