使用“使用ssh在远程主机上执行shell脚本”选项,需要远程服务器上的sudo权限来更改权限并删除受保护的文件。如何使用此权限运行会话?正在接收消息sudo:对不起,你必须有一个tty运行sudo当尝试运行sudo命令时。
iq3niunx1#
要远程运行sudo,您有两个选项1.允许用户运行sudo命令而无需密码。将sudo visudo附加到/etc/sudoers文件中。或者,您可以修改此行以仅允许某些sudo命令在没有密码的情况下运行1.使用伪tty远程模拟tty,并在需要时输入sudo密码。为此,请运行ssh -t username@host command_to_execute
sudo
sudo visudo
/etc/sudoers
ssh -t username@host command_to_execute
r55awzrz2#
如果远程服务器接受root用户的直接登录,您可以简单地执行以下操作:
root
ssh -l root yourserver command_to_execute
字符串类似的语法是:
ssh root@yourserver command_to_execute
型请注意,允许root用户通过ssh登录到远程服务器并不总是一个好的解决方案。更好的解决方案是更改所有者/权限,以允许非root用户修改受保护的文件。
bzzcjhmw3#
关于ubuntu22.04
sshCommand(remote: remoteConfig, command: 'echo 1 | sudo -S systemctl daemon-reload')
字符串这样使用它
stage("ssh upload") { steps { withCredentials([sshUserPrivateKey( credentialsId: "${REMOTE_CRED}", keyFileVariable: "privateKeyFilePath" )]) { script { remoteConfig = [:] remoteConfig.name = "my-remote-server" remoteConfig.host = "${REMOTE_HOST}" remoteConfig.port = 22367 remoteConfig.allowAnyHosts = true remoteConfig.user = "ubuntu" // SSH private key remoteConfig.identityFile = privateKeyFilePath sshPut(remote: remoteConfig, from: 'cyberVillageServer', into: '/home/ubuntu/myapp/') sshCommand(remote: remoteConfig, command: 'echo 1 | sudo -S systemctl daemon-reload') } } } }
型
3条答案
按热度按时间iq3niunx1#
要远程运行
sudo
,您有两个选项1.允许用户运行
sudo
命令而无需密码。将
sudo visudo
附加到/etc/sudoers
文件中。或者,您可以修改此行以仅允许某些sudo
命令在没有密码的情况下运行1.使用伪tty远程模拟tty,并在需要时输入
sudo
密码。为此,请运行
ssh -t username@host command_to_execute
r55awzrz2#
如果远程服务器接受
root
用户的直接登录,您可以简单地执行以下操作:字符串
类似的语法是:
型
请注意,允许
root
用户通过ssh登录到远程服务器并不总是一个好的解决方案。更好的解决方案是更改所有者/权限,以允许非root用户修改受保护的文件。bzzcjhmw3#
关于ubuntu22.04
字符串
这样使用它
型