【问题标题】:sshpass remote command and switching user account in remote machinesshpass 远程命令和在远程机器中切换用户帐户
【发布时间】:2016-06-23 07:53:56
【问题描述】:

要求是对远程机器做ssh并执行sudo su - "wasadmin/user" -c "whoami" 了解 user1 是否对远程计算机上的特定应用程序用户具有 sudo 访问权限。

我尝试了以下方法。但是,我的命令中缺少一些东西。请帮我解决上述情况。

sshpass -p 'Password' ssh -o StrictHostKeyChecking=no UserName1@$iP \
    'echo "your password"|sudo -S su wasadmin -c "hostname"'

【问题讨论】:

  • 您根本无法将密码“管道”到 sudo 命令中。那将是一英里范围内的安全问题。
  • 在这种情况下您可以做什么:使用/etc/sudoers 文件将单个命令“列入白名单”以供使用,而无需指定密码。不过在选择时要非常严格,显然也是出于安全问题。
  • 我需要在 1500 台服务器上验证对 appuser 的 sudo 访问权限。所以,如果我手动进行,将花费大量时间。
  • 我无法为单一用户权限加入白名单,并且想象一下在 1500 台服务器中的白名单一次性使用也是一个手动过程。
  • 您可能想查看类似expect 的内容。虽然对我来说整个任务听起来非常很奇怪,实际上。为什么要向应用用户提供“sudo 访问”?然后你也可以在你的网页上公布根密码。

标签: linux ssh sudo sshpass


【解决方案1】:

根据所有常见的警告,即 - 存储纯文本密码是一种糟糕的解决方案,您可以执行以下操作: sshpass -p password sudo ...

ssh 用于获取键盘交互密码的机制与sudo 使用的机制完全相同,sshpass 也同样有效。

【讨论】:

    猜你喜欢
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 2017-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    相关资源
    最近更新 更多