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

SSH-Relay-Server mit OpenSSH

Lösung 1:

Sicher; Verwenden Sie einfach SSH-Portweiterleitung / Tunneling. Starten Sie mit dem folgenden Befehl eine SSH-Verbindung zum „Proxy“-Rechner:

ssh -L$LOCALPORT:$REMOTEHOST:$SSHPORT $PROXYHOST
  • $PROXYHOST :der Computer, auf den Sie SSH-Zugriff haben
  • $REMOTEHOST :die Maschine, mit der sich $PROXYHOST verbinden kann, Sie aber nicht. Verwenden Sie einen Hostnamen oder eine IP mit $PROXYHOST kann verwendet werden, um auf die Maschine zu verweisen
  • $SSHPORT :der Port, auf den sshd auf remotehost lauscht; höchstwahrscheinlich 22
  • $LOCALPORT :Der lokale ausgehende Port, den SSH auf Ihrem lokalen Computer öffnet, der an Port 22 auf $REMOTEHOST weiterleitet

Lassen Sie diese Verbindung bestehen, damit der Tunnel weiter funktioniert. Vielleicht möchten Sie auch -N hinzufügen an den Befehl, damit diese Verbindung keine Remote-Shell aufruft und Sie sie später nicht versehentlich schließen.

Sobald der Tunnel eingerichtet ist, gehen Sie wie folgt vor:

ssh -p $LOCALPORT localhost

Dadurch wird versucht, eine SSH-Verbindung zu Ihrem lokalen Computer über den Port herzustellen, der an $REMOTEHOST weitergeleitet wird SSH-Port von .

Lösung 2:

Wenn Sie bereit sind, die Konfiguration auf Ihrem Client zu aktualisieren, können Sie Ihren Client so einrichten, dass er Ihre Gateway-Box als Proxy verwendet. Auf Ihrer Relay-Box muss netcat installiert sein, und für die besten Ergebnisse sollten Sie eine schlüsselbasierte Authentifizierung einrichten.

Hier ist, was ich in meiner .ssh/config verwende, um eine Verbindung über einen anderen Host herzustellen.

Host internal-ssh-host-proxy
    ProxyCommand /usr/bin/ssh [email protected] "/bin/netcat -w 1 internal-ssh-host 22"

Mit dem obigen können Sie einfach den Befehl ssh internal-ssh-host-proxy ausführen von Ihrem Client-Rechner.

Wenn der Proxy-SSH-Host über den OpenSSH-Client 5.4 oder höher verfügt, benötigen Sie Netcat nicht und können stattdessen den integrierten Netcat-Modus verwenden.

Host internal-ssh-host-proxy
    ProxyCommand /usr/bin/ssh [email protected] -W internal-ssh-host:22

Lösung 3:

Von den präsentierten Antworten ist die von Zordache die beste Gesamtlösung. Wenn Sie sich jedoch einfach ad-hoc verbinden möchten, ohne Ihre Konfiguration zu bearbeiten, verwenden Sie für die Nachwelt den -t Flag, um ein Pseudo-Terminal zusammen mit der Ausführung von ssh direkt auf dem Relay zuzuweisen.

ssh -t relay.example.com ssh internal.example.com

Lösung 4:

Sie können Verbindungen mit OpenSSH automatisch weiterleiten. In Ihrem ~/.ssh/authorized_keys -Datei können Sie einen auszuführenden Befehl angeben, der ein SSH zu einem zweiten Computer sein könnte.

[ssh client] ----> [ssh relay server] ----> [ssh target server]
    you          modified authorized_keys      target machine

Am Ende sehen Sie zwei Eingabeaufforderungen für Password: :eine für den Relay-Server und eine für den Zielserver. Sie können dieses Verhalten jederzeit entfernen, indem Sie Zertifikate verwenden.


Linux
  1. Best Practices für die OpenSSH-Sicherheit

  2. So installieren Sie den SSH-Server auf Ubuntu / Debian mit OpenSSH

  3. So sichern Sie den SSH-Dienst mit Port Knocking

  4. SSH-Probleme beheben

  5. Benutzername und Passwort in der Befehlszeile mit sshfs

Beheben des Fehlers „Broken Pipe“ mit SSH-Verbindung

So sperren Sie Ihren CentOS-Server mit IPTables

Generieren Sie RSA-Schlüssel mit SSH mithilfe von PuTTYgen

Melden Sie sich mit einem privaten SSH-Schlüssel auf einem Windows-Client bei einem Linux-Server an

So sichern Sie SSH mit Fail2Ban

Mit OpenSSH verbinden (Windows)