ssh - 在sudoers中分别设置环境变量SSH_ASKPASS或askpass

标签 ssh environment-variables debian openssh

我正在尝试登录 ssh 服务器并执行以下操作:

ssh user@domain.com 'sudo echo "foobar"'

不幸的是我遇到了一个错误:

sudo: no tty present and no askpass program specified

Google 告诉我设置环境变量 SSH_ASKPASS 或在 sudoers 文件中设置 askpass。我的远程计算机在 Debian 6 上运行,我已经安装了软件包 ssh-askpassssh-askpass-gnome 并且我的 sudoers 文件看起来像这样:

Defaults        env_reset
Defaults        askpass=/usr/bin/ssh-askpass

# User privilege specification
root    ALL=(ALL) ALL
user    ALL=(ALL) ALL

有人可以告诉我我做错了什么以及如何做得更好吗?

最佳答案

有两种方法可以消除此错误消息。最简单的方法是为远程 sudo 进程提供一个伪终端。您可以使用选项 -t 来执行此操作:

ssh -t user@domain.com 'sudo echo "foobar"'

关于ssh - 在sudoers中分别设置环境变量SSH_ASKPASS或askpass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10232121/

相关文章:

python - 使用 anaconda 注册可自定义的环境变量

java - 跨服务器环境变量

mysql - Debian Lenny 上的 unixODBC MySQL 驱动程序出现问题

java - 连接到数据库时 DataGrip 和 DBeaver(基于 Java 的数据库 IDE)出错

windows - Windows 有哪些好的 SSH 服务器?

ssh - 如何在 vagrant 基础(基线)框中包含并引用自定义 ssh key ? (虚拟盒)

node.js - 启动时设置 sh 脚本时出错 - 英特尔 Galileo Gen 1

windows - 如何获取和打印环境变量的值?

mysql - "fatal error: mysql.h: No such file or directory"编译mod_auth_mysql-3.0.0

python - 从运行 fedora 的系统为我的 python 应用程序创建 debian 包