Quando tento sudo ssh ...
, recebo permissão negada porque ssh
procura /root/.ssh
as chaves, não no /home/me/.ssh
. Mas $HOME
ainda está definido para /home/me
. Por que não ssh
procura $HOME/.ssh
?
relate perguntas
-
Execute o aplicativo X remotamente, execute a GUI no host remoto [fechado]
-
rsync porta 22 e 873 uso
-
Aborto repentino do SCP: tubo quebrado, código de autenticação de mensagem incorreto
-
Execute um único comando como outro usuário; restrições ao sudo
-
Permitir que o usuário execute um comando como root
ssh
ignora$HOME
, ele obtém o diretório home do banco de dados do usuário com base no uid real ¹ (usando opw_dir
campo da estrutura retornado porgetpwuid()
).Dado que
ssh
poderia gravar arquivos lá comoknown_hosts
aquele, é bom que isso não aconteça,/home/me/.ssh
pois você acabaria com um arquivo de propriedade do root lá.Você sempre pode usar
sudo ssh -i ~/.ssh/id_rsa ...
, ou usar um agente de autenticação e certifique-se de passar o caminho do soquete para esse agente de autenticação para o root:ou
Além disso, você tem certeza de que precisa executar
ssh
como root? É ser capaz de criar túneis ou vincular encaminhamentos de portas locais em portas TCP abaixo de 1024? Se for apenas para poder fazer login comoroot
no host remoto, fazer issossh root@host
deve ser suficiente.¹ você pode realmente restaurar o uid real para o original, preservando o uid efetivo de 0:
Embora
sudo
permita "executar um comando como outro usuário" (man sudo
), se estiver ausente, ele usará "o usuário de destino padrão (geralmente root)". É por isso que ele procurará aroot
conta no lado remoto.