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

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

# 1、登陆192.168.1.10

ssh-keygen -t rsa # 一路回车

# 将公钥添加到认证文件中

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys


# 并设置authorized_keys的访问权限

chmod 600 ~/.ssh/authorized_keys

[root@webserver ~]# cat /root/.ssh/id_rsa.pub                                  
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAxIuTif2tmTqEyhTV2im7UWdETqM+LxCbgudawuD2Wl8Mip6C9KGOC84jsphbPrjcWrYnSWAkdZ/p0uWULjdNWCysugyBWX6PyHKym1dVkjChEbG7fv2xgeuMoTmNK1vaujnFdJUqL40Cg1hRtVgiq9LHKNW9uw9HYpdPeQi3seiwlttPJymfTzvom4FVzcwC81RrlECkVBLsYY4HIfSaDFDardjkAo4PDlqf1XzFyrG20hTRcVpkCty+FYXYHqh3xS+9+XwDv5TysS9c60+qZ9aNxacZ7t9AeZ8XOdUPdaQQXJ3ix6eo+r9CXOPbcBrXqZ4GuWY6fNes7PxWgjtEPw== root@webserver
[root@webserver ~]#

# 2、然后再目标机器上执行如下操作

useradd deluser
echo "pwddeluser" |  passwd --stdin deluser 

# 3、切换用户

su - deluser
# 每个节点都执行
ssh-keygen -t rsa # 一路回车
# 将公钥添加到认证文件中
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
# 并设置authorized_keys的访问权限
chmod 600 ~/.ssh/authorized_keys
# 追加到该文件下
cat >>/home/deluser/.ssh/authorized_keys <<"EOF"
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAxIuTif2tmTqEyhTV2im7UWdETqM+LxCbgudawuD2Wl8Mip6C9KGOC84jsphbPrjcWrYnSWAkdZ/p0uWULjdNWCysugyBWX6PyHKym1dVkjChEbG7fv2xgeuMoTmNK1vaujnFdJUqL40Cg1hRtVgiq9LHKNW9uw9HYpdPeQi3seiwlttPJymfTzvom4FVzcwC81RrlECkVBLsYY4HIfSaDFDardjkAo4PDlqf1XzFyrG20hTRcVpkCty+FYXYHqh3xS+9+XwDv5TysS9c60+qZ9aNxacZ7t9AeZ8XOdUPdaQQXJ3ix6eo+r9CXOPbcBrXqZ4GuWY6fNes7PxWgjtEPw== root@webserver
EOF

# 4、root用户下追加该如下内容

cat >>/etc/sudoers<<"EOF"
deluser   ALL=NOPASSWD:/bin/rm -f /tmp/x.log
EOF
echo "123" >/tmp/x.log
# 192.168.1.10上执行 测试
ssh  -p 22879     -t deluser@192.168.1.56  "sudo rm -f /tmp/x.log"  # 必须执行测试,需要输入 yes ,因为第一次需要记住登陆信息

# 这样就在192.168.1.10执行 ssh  -p 22879     -t deluser@192.168.1.56  "sudo rm -f /tmp/x.log" 
# 就会删除 192.168.1.56 的 /tmp/x.log 这个文件
# 再次执行就不再需要输入任何信息了

# 注意这个是单向互信,如果需要双向的话,将其/home/deluser/.ssh/authorized_keys 拷贝给对方的同样文件中即可。



原文地址:https://www.cnblogs.com/bjx2020/p/9052198.html