Ja, ProxyCommand
in deiner SSH-Konfiguration verwenden.
Erstellen Sie eine SSH-Konfigurationsdatei in Ihrem Ausgangsverzeichnis (es sei denn, Sie möchten dies systemweit vornehmen) ~/.ssh/config
:
Host unibroker # Machine B definition (the broker)
Hostname 12.34.45.56 # Change this IP address to the address of the broker
User myusername # Change this default user accordingly
# (`user@unibroker` can overwrite it)
Host internalmachine # Machine A definition (the target host)
ProxyCommand ssh -q unibroker nc -q0 hostname.or.IP.address.internal.machine 22
Jetzt können Sie Maschine A direkt über erreichen
ssh user@internalmachine
Beachten Sie auch, dass Sie jetzt einen einzigen SSH-Host-Zielnamen dafür haben und diesen auch in anderen Anwendungen verwenden können. Z.B:
SCP zum Kopieren von Dateien.
scp somefile user@internalmachine:~/
In Ihren GUI-Anwendungen:
Verwendung sftp://user@internalmachine/
als Standort auf der Maschine zu suchen.
KDE-basiert (Dolphin): verwenden fish://user@internalmachine/
Anmerkungen
Ändern Sie hostname.or.IP.address.internal.machine
und den Port ( 22
) zu der Maschine, die Sie erreichen möchten, als würden Sie von der unibroker
Maschine.
Abhängig von den Netcat-Versionen auf dem Unibroker-Host muss die -q0
Option weggelassen werden. In Bezug auf die Authentifizierung; Sie richten im Grunde genommen zwei SSH-Verbindungen von Ihrer Workstation aus ein. Dies bedeutet, dass sowohl der Unibroker-Host als auch der Host der internen Maschine nacheinander überprüft / authentifiziert werden (sowohl für die Schlüsselpaar- / Kennwort- als auch die Hostschlüsselüberprüfung).
Erläuterung
Dieser Ansatz der Verwendung von ProxyCommand
und 'Netcat' ist nur eine Möglichkeit, dies zu tun. Dies gefällt mir, weil mein SSH-Client direkt mit dem Zielcomputer kommuniziert, sodass ich den Hostschlüssel von meinem Client aus überprüfen und meine Authentifizierung mit öffentlichem Schlüssel verwenden kann, ohne einen anderen Schlüssel für den Broker zu verwenden.
Jedes Host
definiert den Beginn eines neuen Host-Abschnitts. Hostname
ist der Ziel-Hostname oder die IP-Adresse dieses Hosts. User
ist das, was Sie als Benutzer angeben würden ssh user@hostname
.
ProxyCommand
wird als Pipe zum Zielrechner verwendet. Durch die Verwendung von SSH auf dem ersten Computer und die direkte Einrichtung eines einfachen 'netcat' ( nc
) für das Ziel von dort ist dies im Grunde genommen nur ein Klartext, der vom Broker an den internen Computer weitergeleitet wird. Sie haben die -q
Möglichkeit, alle Ausgaben stummzuschalten (nur eine persönliche Präferenz).
Stellen Sie sicher, dass Sie netcat auf dem Broker installiert haben (normalerweise standardmäßig unter Ubuntu verfügbar) - entweder netcat-openbsd oder netcat-traditional .
Beachten Sie, dass Sie hier immer noch zweimal SSH mit Verschlüsselung verwenden. Während der Netcat-Kanal Klartext ist, richtet Ihr SSH-Client auf Ihrem PC einen weiteren verschlüsselten Kanal mit dem endgültigen Zielcomputer ein.