Shell脚本到远程机器中的Sudo并执行命令

时间:2014-02-15 21:51:08

标签: linux sudo

#!/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
  6. 列出文件

    当我执行此脚本时,请说localunixmachine.com ......

    1. 它问我密码
    2. 一旦我输入密码,它将转移到远程机器但不会执行剩余的命令
    3. 如果我从远程会话退出,它将执行剩余命令。
    4. 你能指导我最好的方法来完成我在这里尝试的东西。

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

我认为这应该可以远程执行多个命令:

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

对于没有密码的服务器登录,您需要使用密钥设置ssh身份验证。