GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Ssh – Korrigieren Sie die Einstellungen der Ssh-Konfigurationsdatei, um zu einem dritten Computer zu tunneln?

Ich versuche, über einen Bridge-Server zu einem Server zu tunneln. Bisher konnte ich es mit dem folgenden Befehl über die Befehlsshell zum Laufen bringen:

ssh -A -t [email protected] ssh -A [email protected]

Aber ich habe versucht, dies in meine ~/.ssh/config zu packen Datei und ich habe Probleme. Ich habe versucht:

Host axp
  User          remote_userid
  HostName      remoteserver.com
  IdentityFile  ~/.ssh/id_rsa.eric
  ProxyCommand ssh -A -t [email protected]_userid.com ssh -A [email protected]%h

Aber wenn ich das tue, erhalte ich die folgende Fehlermeldung von remoteserver.com und ich bin mir nicht sicher, was es verursacht:

ksh:SSH-2.0-OpenSSH_6.8^M:nicht gefunden

Das weiß ich, wenn ich mich bei remoteserver.com anmelde , meine Shell ist /usr/bin/ksh .

Ich habe versucht, den ssh-Befehlen in der Konfigurationsdatei Pfadargumente hinzuzufügen, aber es hat keinen Unterschied gemacht.

Irgendwelche Ideen, was es sein könnte?

Akzeptierte Antwort:

Jakujes Antwort ist richtig, aber seit OpenSSH 7.3 , können Sie jetzt -J verwenden ProxyJump was einfacher ist. Siehe meine Notizen:

OpenSSH 7.3 oder höher

Verwenden Sie ProxyJump . Wie im Handbuch erklärt:

-J [[email protected]]host[:port]
Stellen Sie eine Verbindung zum Zielhost her, indem Sie zuerst eine SSH-Verbindung zum Jumphost herstellen und dann von dort aus eine TCP-Weiterleitung zum endgültigen Ziel einrichten. Mehrere Sprungsprünge können durch Kommazeichen getrennt angegeben werden. Dies ist eine Abkürzung, um eine ProxyJump-Konfigurationsanweisung anzugeben.

ProxyJump ~/.ssh/config Beispiel

~/.ssh/config

Host server1
  Hostname server1.example.com
  IdentityFile ~/.ssh/id_rsa

Host server2_behind_server1
  Hostname server2.example.com
  IdentityFile ~/.ssh/id_rsa
  ProxyJump server1

Verbinden mit

ssh server2_behind_server1 -v

Fügen Sie -v hinzu für ausführliche Ausgabe

ProxyJump -J Befehlszeilenbeispiel

~/.ssh/config

Host server1
  Hostname server1.example.com
  IdentityFile ~/.ssh/id_rsa

Host server2
  Hostname server2.example.com
  IdentityFile ~/.ssh/id_rsa

Verbinden mit

ssh server2 -J server1 -v

Oder verwenden Sie -o

ssh server2 -o 'ProxyJump server1' -v

OpenSSH 5.4 oder höher

Verwenden Sie ProxyCommand mit -W

~/.ssh/config

Host server1
  Hostname server1.example.com
  IdentityFile ~/.ssh/id_rsa

Host server2
  Hostname server2.example.com
  IdentityFile ~/.ssh/id_rsa
  ProxyCommand ssh server1 -W %h:%p

Verbinden mit

ssh server2 -v

Oder verwenden Sie -o

ssh server2 -o 'ProxyCommand ssh server1 -W %h:%p' -v

OpenSSH unter 5.4

~/.ssh/config

Host server1
  Hostname server1.example.com
  IdentityFile ~/.ssh/id_rsa

Host server2
  Hostname server2.example.com
  IdentityFile ~/.ssh/id_rsa
  ProxyCommand ssh server1 nc %h %p 2> /dev/null

Verbinden mit:

ssh server2 -v

Oder verwenden Sie -o

ssh server2 -o 'ProxyCommand ssh server1 nc %h %p 2> /dev/null' -v

Quellen

-J in OpenSSH 7.3 hinzugefügt

  • ssh(1):Fügen Sie eine ProxyJump-Option und ein entsprechendes Befehlszeilen-
    -Flag -J hinzu, um eine vereinfachte Indirektion über eine oder mehrere SSH
    -Bastionen oder „Jump-Hosts“ zu ermöglichen.

-W in OpenSSH 5.4 hinzugefügt

  • Einen ‚netcat-Modus‘ zu ssh(1) hinzugefügt:„ssh -W host:port …“ Dies verbindet
    stdio auf dem Client mit einer einzelnen Port-Weiterleitung auf dem Server. Dies
    ermöglicht zum Beispiel die Verwendung von ssh als ProxyCommand, um Verbindungen
    über zwischengeschaltete Server zu routen. bz#1618

Linux
  1. Wie kann ich der ssh-Konfigurationsdatei eine IPv6-Adresse mit einer Bereichs-ID hinzufügen?

  2. Nicht standardmäßiger Speicherort für die ssh-Konfigurationsdatei in Linux

  3. Betrieb von zwei SSH-Servern

  4. SSH - So fügen Sie den Befehl -t in die Datei ~/.ssh/config ein

  5. SSH durch SSH-Tunnel weiterleiten

Verwenden der SSH-Konfigurationsdatei

Wie richte ich die ssh-schlüsselbasierte Authentifizierung für Github mithilfe der Datei ~/.ssh/config ein?

Verwenden Sie die SSH-Konfigurationsdatei, um SSH-Verbindungen zu verschiedenen Remote-Servern zu verwalten

Öffentlichen Schlüssel zur Datei known_hosts hinzufügen

Können Sie mehr als eine ~/.ssh/config-Datei haben?

Passwort zu .ssh/config hinzufügen