dan*_*cal 4 ssh rsync sudo pam
我遇到了一个奇怪的行为,试图通过 ssh 使用无密码登录来运行 rsync 作为 sudo 。这是我对数十台服务器所做的事情,我在连接到几个 Ubuntu 18.04.4 服务器时遇到了这个令人沮丧的问题
前提
使用帐户 USER 从客户端到服务器的无密码 SSH 运行良好
当我登录服务器时,我可以使用帐户 USER 执行所有操作
在服务器上,我已将以下内容添加到/etc/sudoers
用户 ALL=NOPASSWD:/usr/bin/rsync
现在,如果我作为用户 USER 从机器 CLIENT 启动这个简单的测试,我会收到以下 sudo 错误消息:
$ ssh utente@192.168.200.135 -p 2310 sudo rsync
sudo: no tty present and no askpass program specified
Run Code Online (Sandbox Code Playgroud)
此外,查看服务器的/var/log/auth.log我发现了以下错误:
sudo: pam_unix(sudo:auth): conversation failed
sudo: pam_unix(sudo:auth): auth could not identify password for [user]
Run Code Online (Sandbox Code Playgroud)
我不是 PAM 专家,但在 Ubuntu 16.04.5 和 20.04.1 上测试了以下解决方案
注意: /etc/ssh/sshd_config 上的配置设置为默认值
$ sudo visudo -f /etc/sudoers.d/my_config_file
Run Code Online (Sandbox Code Playgroud)
添加以下行
my_username ALL=(ALL) NOPASSWD:ALL
Run Code Online (Sandbox Code Playgroud)
并且不要忘记重新启动 sshd
$ sudo systemctl restart sshd
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15594 次 |
| 最近记录: |