使用 ssh 或 rsync 作为 sudo 时密钥验证不起作用

使用 ssh 或 rsync 作为 sudo 时密钥验证不起作用

我在客户端和 ubuntu 服务器之间设置了 ssh RSA 密钥认证(按照此程序): -和
的 RSA 密钥认证工作正常(不需要密码)。- 和的 RSA 密钥认证失败(提示我输入密码)。- 我需要使用在本地写入远程文件。sshrsync
sudo rsyncsudo ssh
sudo rsync

我正在运行以下命令:

user1@server:/$ sudo su user2
user2@server:/$ rsync 192.168.1.2:... # ok
user2@server:/$ sudo rsync 192.168.1.2:... # remote host password prompt

仅供参考用户1用户2是 sudoers 的一部分

知道这是从哪里来的吗?

谢谢。

更新:需要澄清的是,密码提示不是来自 sudo,而是来自服务器

答案1

您需要告诉它使用正确的公钥。我怀疑 ssh 仍在使用 user1 的密钥,而不是 user2。使用此命令:

sudo -u user2 ssh -i ~user2/.ssh/id_rsa remoteserver

我在我的机器上测试了它并且它有效。

答案2

这个问题

#/etc/sudoers
====at the end of file add this====
user1 ALL = NOPASSWD:ALL

这将使用 sudo 命令删除用户 1 的密码提示。

不要忘记 sudo 用户可以将其 ssh 密钥存储在 /root/.ssh/ 中,而不是 /home/user1/.ssh/ 中

相关内容