Ich versuche, automatisches SSH-Hopping über einen Server einzurichten, der nicht über nc verfügt.
Dies funktioniert über die Befehlszeile:
ssh -A gateway ssh steve@target
(Ich habe meinen öffentlichen Schlüssel zum SSH-Agenten hinzugefügt.)
Wenn Sie es jedoch zu ~ / .ssh / config hinzufügen, geschieht Folgendes nicht:
Host target
User steveb
ProxyCommand ssh -A gateway ssh steve@targetip
$ ssh target
Pseudo-terminal will not be allocated because stdin is not a terminal.
^CKilled by signal 2.
Der Versuch, das Problem zu lösen, -t
ist amüsant, aber nicht hilfreich.
ProxyCommand ssh -A -t gateway ssh steve@targetip
$ ssh target
Pseudo-terminal will not be allocated because stdin is not a terminal.
Pseudo-terminal will not be allocated because stdin is not a terminal.
^CKilled by signal 2.
Mehr -t
's? Nicht gut.
ProxyCommand ssh -A -t -t gateway ssh steve@targetip
$ ssh target
tcgetattr: Inappropriate ioctl for device
^CKilled by signal 2.
Ist das möglich? Die meisten Tutorials (zB http://www.arrfab.net/blog/?p=246 ) empfehlen die Verwendung von nc
.
ssh
rhel
configuration
tty
Steve Bennett
quelle
quelle
Antworten:
SSH ProxyCommand ohne Netcat
Der ProxyCommand ist sehr nützlich, wenn Hosts nur indirekt erreichbar sind. Mit netcat ist es relativ knapp:
Hier sind {gw} und {host} Platzhalter für das Gateway und den Host.
Es ist aber auch möglich, wenn netcat nicht auf dem Gateway installiert ist:
Das / dev / tcp ist eine integrierte Funktion der Standard-Bash. Die Dateien existieren nicht. So überprüfen Sie, ob in bash die Verwendung dieser Funktion integriert ist:
... auf dem Gateway.
Um sicherzustellen, dass bash verwendet wird, verwenden Sie:
Und es funktioniert sogar zusammen mit ControlMaster.
(Aktualisiert am 22. Oktober, um Kill zur Bereinigung der Hintergrundkatze einzuschließen.) (Aktualisiert am 3. März 2011, um Platzhalter deutlicher und erklärbarer zu machen.
100% gutschrift an roland schulz. Hier ist die Quelle:
http://www.rschulz.eu/2008/09/ssh-proxycommand-without-netcat.html
Weitere nützliche Informationen finden Sie in den Kommentaren.
Es gibt auch mehr hier:
http://www.linuxjournal.com/content/tech-tip-tcpip-access-using-bash
http://securityreliks.securegossip.com/2010/08/enabling-devtcp-on-backtrack -4r1ubuntu /
UPDATE : Hier ist etwas Neues von Marco
In Bezug auf einen ProxyCommand in ~ / .ssh / config, wo man eine Zeile wie diese hat:
Marco sagt:
Das Ergebnis würde so aussehen:
quelle
Big T, nicht kleines t.
Mein Skript hat diese Nachricht zurückgegeben und funktioniert nicht mehr.
Ich benutze den
authorized_key
Befehl auf dem anderen_System, um einen Befehl auszuführen:quelle
Probieren Sie es aus:
quelle
-t
in beiden Zusammenhängen zu haben und ich sah es im falschen. Ich habe meine Antwort bearbeitet.Sie können die folgende Technik ausprobieren, um in Server1 zu ssh'en, gefolgt von ssh'en in Server2.
Es so zu machen, funktioniert für mich.
quelle