2017-03-12 3 views
1

Ich versuche ssh über den Proxy-Server meiner Universität zu einem unserer Labor-Server. Das Ziel ist, es mit Paramiko zu automatisieren, aber ich versuche zuerst zu verstehen, was in der Terminal-Ebene passiert.ssh ProxyCommand schlägt fehl: "verbotenes Zeichen/Befehl über SSH"

versuchte ich

ssh -o ProxyCommand='ssh [email protected]_server nc inner_server 22' [email protected]_server 

Und

bekam
*** forbidden char/command over SSH: "nc inner_server 22" 
This incident has been reported. 
ssh_exchange_identification: Connection closed by remote host 

Was ich denke, bedeutet, dass der Server die ProxyCommand nicht gestattet.

Jeder Weg, um dies auf eine andere Weise zu erreichen? Nur um klar zu sein, ssh zu Proxy_Server und dann zu Inner_Server, funktioniert gut, aber erzeugt keine paramiko SSHClient-Instanz, die ich anstrebe.

+0

Es scheint, das SSH-Gateway ermöglicht es Ihnen nicht, beliebige Befehle als 'nc' auszuführen. Sie sollten untersuchen, welche Befehle erlaubt sind. – salva

+0

Wahr. Ich denke, ich dachte, NC ist die einzige Möglichkeit, den ProxyCommand zu verwenden, daher kam ich zu dem Schluss, dass der ProxyCommand vom Server nicht zugelassen wird. Täusche ich mich? – Eran

+0

Nein, es gibt andere Möglichkeiten, wie die Verwendung des Flags "-W", wie von @Jakuje unten erklärt (erfordert Port-Forwarding aktiviert, was unwahrscheinlich ist) oder Aufruf von "ssh sshd -i". – salva

Antwort

2

Verwenden Sie nicht netcat. Es ist wahrscheinlich nicht auf dem Proxy-Server erlaubt. Verwenden Sie -W-Schalter:

ssh -o ProxyCommand='ssh -W %h:%p [email protected]_server' [email protected]_server 
+0

Funktioniert perfekt. Vielen Dank! – Eran