【问题标题】:Shell script to Sudo in Remote Machine and execute commandsShell 脚本到远程机器中的 Sudo 并执行命令
【发布时间】:2014-02-15 21:51:07
【问题描述】:
#!/bin/csh
ssh -o StrictHostKeyChecking=no xyz123@remotemachine.com
sudo -su rootuser
ksh
. /mydir/setup_env.ksh
ls -ltr

上面是我需要做的任务列表。

  1. 在没有密码提示的情况下登录远程计算机
  2. 运行 Sudo 以访问 Root
  3. 将 shell 更改为 ksh
  4. 执行脚本 (setup_env.ksh)
  5. 使用 ls -ltr 列出文件

当我执行这个脚本时,比如说 localunixmachine.com...

  1. 它要求我输入密码
  2. 一旦我输入密码,它将转移到远程机器,但不会执行剩余的命令
  3. 如果我退出远程会话,它将执行剩余的命令。

您能否指导我完成我在这里尝试的最佳方法。

【问题讨论】:

    标签: linux sudo


    【解决方案1】:

    首先你可以复制你的ssh公钥,你可以生成ssh-keygen到authorized_keys到远程服务器root/.ssh/authorized_keys 然后脚本将是

    ssh root@remotemachine.com "/bin/ksh mydir/setup_env.ksh"
    

    【讨论】:

      【解决方案2】:

      我认为这应该适用于远程执行多个命令:

      #!/bin/bash
      ssh -o StrictHostKeyChecking=no xyz123@remotemachine.com <<EOF
      sudo -su rootuser
      ksh
      . /mydir/setup_env.ksh
      ls -ltr
      EOF
      

      至于无密码登录服务器,需要设置带密钥的ssh认证。

      【讨论】:

        猜你喜欢
        • 2012-12-05
        • 1970-01-01
        • 2011-04-26
        • 1970-01-01
        • 2012-07-27
        • 2017-11-24
        • 1970-01-01
        • 2016-03-07
        • 2017-08-31
        相关资源
        最近更新 更多