【发布时间】:2021-04-07 07:01:42
【问题描述】:
我正在尝试在本地网络中设置一些自动化,并开始使用一些 shell 脚本和我看到的东西 - 根据脚本的运行方式(使用或不使用 sudo),脚本内的 SSH 非常奇怪的行为:
我有什么: 计算机 A 和计算机 B。
内ComputerA:
一个shell脚本script.sh:
cp /dir1/file1 /dir2/file2
ssh username@ComputerB "sudo reboot"
/etc/ssh/ssh_config 文件有一些配置可以在没有 ssh-keys 的情况下工作(它们总是在 ComputerB 上更改):
StrictHostKeyChecking no
UserKnownHostsFile=/dev/null
GlobalKnownHostsFile=/dev/null
内ComputerB:
在/etc/sudoers 文件中:
username ALL=(ALL:ALL) NOPASSWD:ALL
当我通过 SSH 连接到 ComputerA 并在没有 sudo 的情况下运行 script.sh 时,我收到写入 /dir2 的权限错误(没关系),并且 ComputerB 上的下一个命令正常执行(重新启动 ComputerB),但我正在运行 sudo script.sh。它复制文件然后我很奇怪 - SSH 询问我用户名密码。尝试了不同的变体将 ssh 命令更改为:
ssh -t username@ComputerB "echo user_pass | sudo -S reboot"
但没有任何帮助。
所以我需要帮助来弄清楚会发生什么以及在不输入 ssh 命令密码的情况下执行sudo script.sh 该怎么做。
谢谢!
【问题讨论】:
-
您可能需要编辑文件权限。可以到带有 script.sh 的目录并运行
ls -l并告诉我结果吗? -
@mjlitz script.sh 拥有“777”权限