O login automático do SSH fornece shell remoto sem resposta, retornando ao terminal do cliente (sem erros)

1

Eu tenho um problema com a ferramenta esperada no Ubuntu 14.04 LTS. Eu quero automatizar logins ssh para alguns Firewalls Sophos UTM e evelate meus direitos diretamente depois com "sudo su -" ea senha correta. Eu não tenho que me preocupar com senhas de texto simples, porque meu script é executado diretamente do campo de URL do KeePass (doubleclick executa o script e o preenche com as senhas corretas via agrument / KeePass {Placeholder} atrás do script). Eu consegui fazer tudo isso, exceto por ter um shell de root remoto, que não está executando nenhum comando e "soltando a conexão" de volta ao meu sistema Ubuntu. Portanto, o comando que estou tentando executar remotamente não é executado por 4-5 segundos e, em seguida, é executado de repente no sistema Ubuntu, sem me dizer o que aconteceu.

O que tenho que fazer para ter um shell remoto totalmente funcional? O SSH-Keys e o root-login direto não são uma solução para mim, já que estamos tendo muito o Sophos UTMs por aí.

Explicação de coisas acontecendo:

sshtool.sh:
#!/usr/bin/expect -f
spawn sshpass -pPASSWORD ssh -t [email protected] "sudo su -"
expect -- "oot's password:"
send "PASSWORD\r"
expect -- "/root #"
expect eof



What happens in the terminal:
vct@vct-virtual-machine:~$ ./sshtool.sh
spawn sshpass -pPASSWORD ssh -t [email protected] sudo su -
root's password:
utm:/root # whoami
# *enter*
# not reacting for 4-5 seconds
vct@vct-virtual-machine:~$ whoami
vct
vct@vct-virtual-machine:~$

Alterar o script dessa forma não ajuda com o problema da conexão perdida:

sshtool.sh:
#!/usr/bin/expect -f
spawn ssh [email protected]
expect -- "password:"
send "PASSWORD\r"
expect -- "/home/login > "
send -- "sudo su -\r"
expect -- "oot's password:"
send "PASSWORD\r"
expect -- "/root #"
send -- "whoami\r"
expect eof


vct@vct-virtual-machine:~$ ./sshtool.sh
spawn ssh [email protected]
[email protected]'s password:
Last login: Mon Apr 18 09:14:41 2016 from 192.168.1.44


Sophos UTM
(C) Copyright 2000-2015 Sophos Limited and others. All rights reserved.
Sophos is a registered trademark of Sophos Limited and Sophos Group.
All other product and company names mentioned are trademarks or registered
trademarks of their respective owners.

For more copyright information look at /doc/astaro-license.txt
or http://www.astaro.com/doc/astaro-license.txt

NOTE: If not explicitly approved by Sophos support, any modifications
      done by root will void your support.

<M> loginuser@utm:/home/login > sudo su -
root's password:
# Following "whoami" directly executed by the script itself works fine
<M> utm:/root # whoami
root
# After 4-5 seconds, it's dropping the connection again
<M> utm:/root # vct@vct-virtual-machine:~$

Obrigado antecipadamente!

    
por Nyctophilia 18.04.2016 / 09:45

1 resposta

1

Se você quiser um shell remoto "responsivo", precisará de um comando interact depois de concluir a troca de login. Algo parecido com isto:

#!/usr/bin/expect -f
spawn sshpass -pPASSWORD ssh -t [email protected] "sudo su -"
expect -- "oot's password:"
send "PASSWORD\r"
expect -- "/root #"
interact
    
por 18.04.2016 / 19:12