ssh - ssh 和 sudo:pam_unix(sudo:auth):对话失败,auth 无法识别 [username] 的密码
问题描述
我正面临一个奇怪的行为,试图通过无密码登录的 ssh 以 sudo 身份运行 rsync。这是我对数十台服务器所做的事情,我在连接到几个 Ubuntu 18.04.4 服务器时遇到了这个令人沮丧的问题
前提
使用帐户 USER 从 CLIENT 到 SERVER 的无密码 SSH 运行良好
当我登录服务器时,我可以使用帐户 USER 对所有内容进行 sudo
在服务器上,我已将以下内容添加到/etc/sudoers
用户 ALL=NOPASSWD:/usr/bin/rsync
现在,如果我从机器 CLIENT 作为用户 USER 启动这个简单的测试,我会收到以下 sudo 错误消息:
$ ssh utente@192.168.200.135 -p 2310 sudo rsync
sudo: no tty present and no askpass program specified
此外,查看服务器的/var/log/auth.log我发现了这个错误:
sudo: pam_unix(sudo:auth): conversation failed
sudo: pam_unix(sudo:auth): auth could not identify password for [user]
解决方案
我不是 PAM 专家,但在 Ubuntu 16.04.5 和 20.04.1 上测试了以下解决方案
注意:配置在 /etc/ssh/sshd_config 上设置为默认值
$ sudo visudo -f /etc/sudoers.d/my_config_file
添加以下行
my_username ALL=(ALL) NOPASSWD:ALL
并且不要忘记重新启动 sshd
$ sudo systemctl restart sshd
推荐阅读
- javascript - 虽然有时它有效,但我在我的 React 项目中得到“.filter 不是函数”
- python - Numpy argsort - 发生了什么?
- reactjs - 从谷歌地图组件设置时查询参数值不更新
- python - 神奇地提供了 Django 管理静态文件
- bash - 重复 base64 编码与预期结果不同
- c++ - 如何从以冒号分隔的文本文件 C++ 分配变量
- java - 根据java中的数据类型解释以下赋值
- javascript - 从 webpack 生成的代码中删除 exports 变量
- node.js - Kubernetes 和 Socket.io 404 错误 - 在本地工作,但在应用到 kubernetes 后不能
- excel - mmm dd, yyyy hh:mm AM/PM 在 Excel 中无法识别