Normalerweise, wenn Sie Befehle in paramiko auszuführen versucht haben, um eine Schale nicht aufrufen und kann ssh.exec_command(...)
einfach anrufen. Wenn der Befehl, den Sie ausführen möchten, von der Umgebung abhängt, die Sie beim Start einer Shell erhalten, müssen Sie explizit die Methode invoke_shell()
aufrufen.
Wenn Sie in Paramiko invoke_shell()
verwenden, müssen Sie die Zeilenbeendigungszeichen senden, die die bestimmte Shell erwartet. Wenn die Maschine, auf die Sie zugreifen möchten, bash
als Standard-Shell hat, müssen Sie nach jedem Befehl ein Newline-Zeichen (d. H. '\n'
) senden. Zum Beispiel:
shell.send('ls\n')
statt
shell.send('ls')
Wenn Sie einen älteren Windows-Rechner sind angeschlossen hat, müssen Sie sowohl einen Wagenrücklauf und eine neue Zeile (dh '\r\n'
) für den Befehl senden zu sein verarbeitet.