AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 427412
Accepted
Bryan
Bryan
Asked: 2012-09-15 02:17:23 +0800 CST2012-09-15 02:17:23 +0800 CST 2012-09-15 02:17:23 +0800 CST

使用无密码 sudo 的 ssh 远程命令失败

  • 772

作为 bryan@localserver 登录,我正在尝试使用 rsync 在远程主机 bryan@remoteserver 上执行备份。

我需要 rsync 连接来使用 提升远程主机上的权限--rsync-path='sudo rsync',但我遇到了问题,因此决定简化问题并尝试先执行以下操作:

bryan@localserver # ssh bryan@remoteserver 'sudo /usr/bin/whoami'

曾经,我破解了这个,我应该能够让 rsync 工作。


到目前为止我做了什么:

我已经配置了 ssh,以便 bryan@localserver 可以使用密钥而不是密码通过 ssh 连接到 bryan@remoteserver。

bryan@localserver # ssh bryan@remoteserver
bryan@remoteserver #

我还将 bryan@remoteserver 配置为能够以/usr/bin/whoamisudo 方式运行,而无需在 remoteserver 上的 sudoers 文件中输入密码:

bryan   ALL=(ALL) NOPASSWD: /usr/bin/whoami

这很好用:

bryan@remotehost # sudo whoami
root

但是从本地服务器:

bryan@localhost # ssh bryan@remoteserver 'sudo /usr/bin/whoami'
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: 3 incorrect password attempts

我完整的 sudoers 文件(减去注释和空行)如下:

Defaults env_reset
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Defaults !requiretty
root    ALL=(ALL:ALL) ALL
bryan   ALL=(ALL) NOPASSWD: /usr/bin/whoami
%admin  ALL=(ALL) ALL
%sudo   ALL=(ALL:ALL) ALL

ssh -t来自 localserver 解决了“不存在 tty”错误,但仍然提示我输入 bryan@remotehost 的密码。

谁能解释一下问题是什么?

本地服务器是 Ubuntu 10.04 x64,远程服务器是 Ubuntu 12.04 x64。

ssh
  • 1 1 个回答
  • 2602 Views

1 个回答

  • Voted
  1. Best Answer
    Cakemox
    2012-09-15T02:24:27+08:002012-09-15T02:24:27+08:00

    你是sudo群里的人还是admin群里的人?从sudoers手册页:

    当多个条目匹配一个用户时,它们将按顺序应用。如果有多个匹配项,则使用最后一个匹配项(不一定是最具体的匹配项)。

    您可以将您的bryan ALL=(ALL) NOPASSWD: /usr/bin/whoami行移到底部,这样它就是最后一场比赛。这应该可以防止系统提示您输入密码。

    • 2

相关问题

  • 如何最好地设置 ssh 隧道以访问远程网络 (Linux)

  • SSH 和重定向

  • 通过 SSH 会话使用 NET USER 命令拒绝访问

  • SSH 服务器零日漏洞利用 - 保护自己的建议

  • ubuntu apt-get upgrade - 如何在 shell 中单击确定?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve