A razão pela qual isso está falhando é que, por padrão, ssh
não cria um terminal (a pty
) na máquina de destino. Isso significa que su
não pode solicitar uma senha, por isso falha. ( sudo
também falharia ao solicitar, pela mesma razão, a menos que receba o -S
flag - conforme apontado pelo @Scott).
-
Você pode dizer a
ssh
para criar um terminal (pty
) no sistema remoto, para quesu
possa solicitar uma senha. Com um comando normal, você faria isso fornecendo o sinal-t
ao ssh. Infelizmente não posso oferecer-lhe qualquer ajuda com o método para fazer isso com SSH.NET porque sua documentação é fornecida no formato CHM, que não posso abrir . -
Você pode cortar a parte
su
totalmente conectando-se ao servidor remoto com a conta de usuário de destino desejada, "root". Por motivos de segurança, isso pode falhar em alguns sistemas que recusam logins raiz que tentam usar uma senha, portanto, você pode investigar logins baseados em certificado. Um certificado adequado pode ser gerado com o comandossh-keygen -t rsa
.