iza*_*ack 9 linux ssh remote debian sudo
我有一个 linux(基于 debian)服务器,它被配置为允许与用户“admin”的 SSH 会话,但不允许用户“root”。这两个帐户以某种方式关联,因为它们共享相同的密码。
在以管理员身份进行 SSH 会话期间,除非我切换到用户“root”,否则需要“sudo”来运行命令。
我有一些服务需要时不时地运行,甚至在系统启动时运行。我目前正在使用私钥/公钥机制在服务器上远程执行命令。一些命令是手动键入的,其他命令是我执行的 shell 脚本。当前,当命令使用 sudo 时,服务器仍然要求输入密码。
问题:如何在不提供密码的情况下以用户 'admin' 远程执行?是否可以使用私钥/公钥来满足 sudo?或者甚至是一种以用户“root”身份启动shell脚本的方法?
甚至可以避免使用 sudo 输入密码吗?如果没有,他们是否有其他替代方案来解决像我这样的情况?
Arc*_*mar 16
您可以告诉 sudo 跳过某些命令的密码。
例如在 /etc/sudoers
archemar ALL = (www-data) NOPASSWD: /bin/rm -rf /var/www/log/upload.*
Run Code Online (Sandbox Code Playgroud)
这允许我使用
sudo -u www-data /bin/rm -rf /var/www/log/upload.*
Run Code Online (Sandbox Code Playgroud)
作为没有密码的archemar。
注意
sudo -u www-data rm -rf /var/www/log/upload.*
Run Code Online (Sandbox Code Playgroud)
将无法正常工作(会要求输入密码)为rm
来自不同/bin/rm
。
请务必/etc/sudoers
使用visudo
命令进行编辑。
一旦达到高级水平,您可能希望在/etc/sudoers.d
.
最简单的方法是提供密码(stdin
如果您sudo
支持)(-S 键)
ssh -t admin@remotehost "echo <yourpassword> |sudo -S <yourcommand>"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
41412 次 |
最近记录: |