Ich versuche, eine geschachtelte ssh-t-t auszuführen, aber es wird mir die Umgebungsvariablen nicht zur Verfügung stellen, wenn Sie mit cat
und echo
arbeiten.
#!/bin/bash
pass="password\n"
bla="cat <(echo -e '$pass') - | sudo -S su -"
ssh -t -t -t -t jumpserver "ssh -t -t -t -t server \"$bla\" "
Ich bekomme eine Ausgabe ohne irgendwelche Variablen in Betracht gezogen. (z. B. PS1 wird nicht angezeigt, aber Befehle funktionieren einwandfrei) Das Problem bezieht sich auf cat <(echo -e '$pass') -
, aber dies war der Weg echo
am Leben zu erhalten, nachdem das Passwort für sudo
bereitgestellt wurde.
Wie kann ich dies erreichen und Umgebungsvariablen erhalten, um eine korrekte Ausgabe zu erhalten?
Danke.
Danke für die Antwort! 1. Das Multiple-t wurde hinzugefügt, da das Handbuch von ssh "Multiple -t options force tty allocation" angibt. 2. echo proc stirbt und tötet das sudo su - deshalb habe ich diese konstruktion benutzt, 3. ich brauche eine interaktive shell als root also sudo! = Sudo su – Raz3k
'sudo -i' ist was du brauchst. Wenn Sie die Standardeingabe für das Sudo schließen, endet es offensichtlich. – Jakuje
habe es gerade versucht und ohne die 'cat' Konstruktion tötet es die Verbindung, danke. – Raz3k