root @ mickey: / # su goofy && ssh goofy.com - por que isso falha?

2

mickey (que está logado como root) tenta usar a conta do goofy em ssh no goofy.com.

root@mickey:/#su goofy && ssh goofy.com

no entanto, isso não consegue entrar no goofy goofy.com; pateta @ mickey: / $ (apenas o goofy funcionava, saídas tão engraçadas:

goofy@mickey:/$ exit
exit
Permission denied (publickey).

Eu esperaria o erro de permissão para qualquer usuário que não seja goofy. Como posso fazer

su goofy
ssh goofy.com 

em uma linha?

    
por Pascal 03.09.2013 / 10:44

2 respostas

2

Porque su goofy abre uma nova sessão, mas && ssh goofy.com irá para o original. Portanto, o comando && ssh goofy.com é executado sob o usuário original, não su -ed.

Tente em uma linha como esta: sudo -u goofy -H sh -c "ssh goofy.com"

    
por Frantique 03.09.2013 / 10:48
1

Algumas razões:

  • Se você apenas quer dizer ssh como outro usuário remotamente, especifique um nome de usuário:

    ssh goofy@server
    # or 
    ssh -u goofy server
    
  • Se você precisar alterar o usuário localmente e, em seguida, executar ssh como esse usuário, use su corretamente. su entra em sua própria sessão, então os comandos que você executa serão executados após o término. Você poderia traduzir seu comando para:

      

    Transforme-se em pateta e depois que eu terminar (e supondo que funcionou), execute ssh .

    Veja o argumento -c / --command de su (execute man su para o manual) ou observe o comando sudo que tem uma sintaxe mais lógica na minha opinião. Aqui está como você escreveria corretamente o seu comando (assumindo que é realmente o que você quer fazer):

    su -c "ssh goofy.com" goofy
    # or
    sudo -u goofy -- ssh goofy.com
    
por Oli 03.09.2013 / 11:34