Você precisa dizer para usar a chave pública correta. Eu suspeito que o ssh ainda está usando a chave do user1, não o user2. Use este comando:
sudo -u user2 ssh -i ~user2/.ssh/id_rsa remoteserver
Eu testei isso na minha máquina e funcionou.
Eu tenho a configuração de autenticação de chave ssh RSA entre um cliente e um servidor ubuntu ( seguindo este procedimento ) :
-a autenticação de chave RSA para ssh
e rsync
funciona bem (sem necessidade de senha).
-a autenticação de chave RSA para sudo rsync
e sudo ssh
falha (é solicitada uma senha).
-Eu preciso usar sudo rsync
para gravar os arquivos remotos localmente.
Estou executando o comando da seguinte forma:
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
FYI user1 e user2 fazem parte dos sudoers
Alguma ideia de onde isso poderia estar vindo?
Obrigado.
atualizado: para esclarecer, o prompt de senha não vem do sudo, mas do servidor
Você precisa dizer para usar a chave pública correta. Eu suspeito que o ssh ainda está usando a chave do user1, não o user2. Use este comando:
sudo -u user2 ssh -i ~user2/.ssh/id_rsa remoteserver
Eu testei isso na minha máquina e funcionou.
este problema está em
#/etc/sudoers
====at the end of file add this====
user1 ALL = NOPASSWD:ALL
isso removerá a senha promt para user1 usando o comando sudo.
Não esqueça que os usuários do sudo podem armazenar as chaves ssh em /root/.ssh/ e não em /home/user1/.ssh /