Ja, ProxyCommandin 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.machineund den Port ( 22) zu der Maschine, die Sie erreichen möchten, als würden Sie von der unibrokerMaschine.
Abhängig von den Netcat-Versionen auf dem Unibroker-Host muss die -q0Option 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 ProxyCommandund '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 Hostdefiniert den Beginn eines neuen Host-Abschnitts. Hostnameist der Ziel-Hostname oder die IP-Adresse dieses Hosts. Userist das, was Sie als Benutzer angeben würden ssh user@hostname.
ProxyCommandwird 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 -qMö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.