ssh ohne die Ports zu öffnen

7

Normalerweise biete ich meinen Freunden Lösungen zur Behebung von Problemen auf ihren Ubuntu-Computern. Die meisten von ihnen verwenden eine gemeinsam genutzte Internetverbindung über LAN, wo sie keine Ports öffnen können, damit ich über ssh auf ihre Computer zugreifen kann. Ist es möglich, in eine Maschine zu ssh, ohne Ports zu öffnen. Mit Diensten wie Teamviewer können Benutzer beispielsweise nur eine Verbindungsanforderung von außerhalb annehmen. Wenn der Eigentümer des Computers dies zulässt, kann der Computer von authentifizierten Benutzern verwendet werden. Wenn der Besitzer des Computers dies mit einer Art Authentifizierung zulässt, sollte es möglich sein, SSH-Zugriff auf einen Computer zu erhalten, ohne die Ports am NAT-Router zu öffnen.

Nixnotwin
quelle

Antworten:

10

Sie können dies über Empathys Backend (Telepathie) über eine andere Anwendung namens ssh-contact tun .

Ich habe es nicht persönlich benutzt, aber es scheint mir eine gute Möglichkeit zu sein, zwei Anfänger zu SSH ineinander zu bringen.


Eine andere Methode wäre natürlich, sie SSH an Sie zu senden (ich nehme an, Sie sind kompetent genug, um Ihre Portweiterleitung zu verwalten) und einen Port zurück an einen SSH-Server auf ihrem Computer weiterzuleiten.

Bring sie zum Laufen:

ssh -R 48724:localhost:22 your_username@your_ip

Möglicherweise möchten Sie nicht, dass sie sich als Benutzer anmelden, damit Sie einen anderen Benutzer erstellen und diesen nur für SSHing verwenden können. Es muss offensichtlich ein Mindestmaß an Vertrauen zwischen Ihnen und dem anderen Benutzer bestehen.

Und dann rennst du:

ssh -p 48724 their_username@localhost

Ich verwende einen hohen Port, sodass keine Root-Rechte erforderlich sind.

Natürlich müssen sie openssh-serverinstalliert sein, damit Sie eine Verbindung herstellen können, aber das ist ganz einfachsudo apt-get install openssh-server

Oli
quelle
Wenn ich Ihrem zweiten Vorschlag folge, sollte ich dann nur Port 22 auf meinem NAT-Router öffnen?
Nixnotwin
1
Ja. Nebenbei bemerkt, ich verwende tatsächlich einen High-Port (im Bereich 4xxxx-5xxxx), damit die Leute ihn nicht erraten können (hilft, brutale Angriffe zu stoppen) und an diesen Port weiterzuleiten. Dazu müssen Sie Ihr lokales ändern /etc/ssh/sshd_configund auch -p 4xxxxdie Verbindungszeichenfolge hinzufügen , die Sie dem anderen Benutzer geben.
Oli
2

Für jede eingehende Verbindung muss auf jeden Fall ein Port geöffnet werden. Es gibt einfach keine andere Möglichkeit, eine Netzwerkverbindung herzustellen. Wenn es keinen vorhandenen Port gibt, den Sie verwenden können, können Sie nicht einfach in diese Richtung gehen.

Aber du kannst den anderen Weg gehen. Wenn Ihr Freund eine SSH-Verbindung zu Ihrem Computer herstellt und den SSH-Port weiterleitet, können Sie durch seinen Tunnel zu seinem Computer zurückkehren. Dies gibt Ihnen eine SSH-Verbindung zu seinem Computer, die nur so lange überlebt, wie sein SSH an Sie (einschließlich Portweiterleitung) bestehen bleibt.

Diese Methode duckt auch Firewalls.

Rich Pixley
quelle
-3

Mit Straight-Up ist sshdies nicht möglich. Es gibt jedoch wahrscheinlich ein anderes Tool, mit dem Sie das erreichen können, was Sie versuchen.

David Oneill
quelle