sudo remoto para root usando texto simples, em seguida, executando comandos

0

gostaria de ssh em outros servidores clientes na mesma sub-rede usando uma senha de texto simples, em seguida, sudo para root para desligar comandos e reinicializar. Eu propositadamente não estou adicionando a chave ssh. Eu tentei

ssh -tt [username]@[host] "sudo su -; service snmpd stop; reboot ";

Como eu passaria a senha no login para o nome de usuário e o sudo?

    
por keyboard_solo 20.07.2017 / 22:20

2 respostas

1

Tente usar um programa chamado sshpass para passar sua senha ssh. Pode ser usado assim:

SSHPASS='sshpassword'
remoterootpass='remoterootpass'

sshpass -e ssh user@host <'EOF'
su -
echo "$remoterootpass"
service snmpd stop
reboot
EOF

Você também pode colocar seus comandos remotos em um shell script e chamá-lo assim:

SSHPASS='sshpassword'
cat myscript.sh | sshpass -e ssh user@host
    
por 20.07.2017 / 22:32
1

Observação: A resposta fornecida aqui deve funcionar. No entanto, viola as práticas recomendadas. Essa resposta também assume que sshpass está disponível no host em que o comando será iniciado. O usuário notou que será usado uma vez e depois será removido.

sshpass -pPASSWORD ssh -tt [username]@[host] 'echo PASSWORD | sudo -S -s /bin/bash -c "service snmpd stop; reboot"'

No mínimo, o usuário deve usar a troca de chaves para o login do ssh e permitir que o usuário execute os comandos desejados via sudo sem senha.

    
por 20.07.2017 / 23:31