zoukankan      html  css  js  c++  java
  • 非root用户sudo_ssh免密钥

    非root用户sudo_ssh免密钥

    目标:从服务器上ssh登陆后sudo免密钥执行相应的命令
    环境介绍:
    192.168.65.128    my1-222
    192.168.65.129  my2-223
    192.168.65.130    web224
    
    # 步骤一:
    # 每个节点执行(不是必须,但是建议这样做)
    cat >>/etc/hosts <<EOF
    192.168.65.128  my1-222
    192.168.65.129  my2-223
    192.168.65.130  web224
    EOF
    
    # 场景介绍
    # 现在有个删除缓存的操作。需要在192.168.65.128上执行,192.168.65.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 600 ~/.ssh/authorized_keys
    
    # 只要在一个节点执行即可。这里在 192.168.65.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 22 -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 22 -t gtuser@192.168.65.128 "sudo /bin/rm -f /tmp/global_cache.log"
    ssh -p 22 -t gtuser@192.168.65.129 "sudo /bin/rm -f /tmp/global_cache.log"
    ssh -p 22 -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-222 ~]# 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-222 ~]# 
  • 相关阅读:
    下一代的前端构建工具:parcel打包react
    vue or react mvvm里的文字上下滚动
    CSS grid layout demo 网格布局实例
    js页面可视区域懒加载
    Vue双向绑定简单实现
    React Router 4.0中文快速入门
    Array.isArray() 和 isObject() 原生js实现
    60分钟课程: 用egg.js实现增删改查,文件上传和restfulApi, webpack react es6 (一)
    mirror.js 整合redux的好工具
    React-redux及异步获取数据20分钟快速入门
  • 原文地址:https://www.cnblogs.com/bjx2020/p/8566994.html
Copyright © 2011-2022 走看看