我想通过 ssh 使用 bash 脚本从本地到远程服务器执行一些 sudo 权限命令,而无需在 ssh 上传递多个以分号分隔的命令。我已尝试以下步骤但出现错误。
ssh -t user@remoteip 'bash -s' < services.sh
虽然我在这里使用了 -t 选项,但它仍然显示错误消息。
sudo: sorry, you must have a tty to run sudo
答案1
Defaults requiretty
当 中未注释时,可能会发生这种情况/etc/sudoers
。
解决方法是注释该行:
#Defaults requiretty
请记住仅/etc/sudoers
使用visudo
** 命令进行编辑。
**该visudo
命令只能由用户运行root
。
答案2
你也可以尝试这个:
ssh -t user@remoteip <<'EOF'
command1
command2
command3
EOF
尽管最好将脚本与您想要的命令一起保存在远程计算机上,并在登录后调用它。