Ich habe zwei Computer hinter dem gleichen Router. Nennen wir sie A und B.
A kann auf folgende Weise von SSH zu B: ssh usr@<internal ip of computer>
B kann SSH zu A, indem es dasselbe tut, aber die externe IP muss verwendet werden. Ich habe den Port 22 meines Routers an die IP von Computer A weitergeleitet, damit alles für mich Sinn macht.
Ich möchte jedoch auch Port 26 an Computer B und SSH von außerhalb des Netzwerks weiterleiten, indem ich die externe IP für beide verwende, aber entweder Port 22 oder 26 spezifiziere, um effektiv auszuwählen, welcher Computer verwendet werden soll.
Ich habe versucht, Port 26 über OUTPUT von iptables
A und INPUT von B zuzulassen , aber das schien nicht zu funktionieren. Ich habe auch Port 26 an die interne IP von B weitergeleitet (über den Router), wie ich es mit 22 für A getan habe.
Folgendes bekomme ich, wenn ich versuche, über die externe IP und den Port 26 von A nach B zu SSH zu wechseln:
ssh: connect to host xx.xx.xxx.xx port 26: Connection refused.
Versionen:
- A = OpenSSH_5.9p1 Debian-5ubuntu1, OpenSSL 1.0.1 14. März 2012
- B = OpenSSH_6.0p1 Debian-4, OpenSSL 1.0.1c 10. Mai 2012
A hat 12.04 Ubuntu, B ist ein Raspberry Pi mit Raspbian.
EDIT: Etwas , das ich setzen in vergessen zu: Ich habe versucht , die SSH - Konfigurationsdatei schaltend (ich fand es ist /etc/ssh/ssh_config
) ich unkommentiert (deleted die #
) die Zeile mit Port
und geändert 22
zu 26
. Es gab mir die Verbindung abgelehnte Nachricht noch. (Ich habe ohne Erfolg neu gestartet.)
quelle
Antworten:
Anscheinend läuft auf dem zweiten Computer kein SSH auf Port 26. Sie können entweder die Portnummer auf diesem Computer auf 26 ändern.
Entweder editieren
/etc/ssh/sshd_config
und nicht vergessen, SSH neu zu starten oder auf 22 zu belassen, aber Port 26 des Routers an Port 22 des zweiten Rechners weiterleiten. Vergessen Sie auch nicht, die Firewall-Einstellungen auf dem zweiten Computer zu ändern, um die Verbindungen zuzulassen.quelle
Wenn Sie sich auf einem Linux-System befinden und über Port 26 eine Verbindung zu einem SSH-Server herstellen möchten, können Sie den folgenden Befehl verwenden.
Hinweis:
quelle
Ich benutze Port 22 nur für den ssh-Zugang im Intranet.
Für den Zugriff über das Internet verwende ich einen benutzerdefinierten (ungewöhnlichen) Port. Dies hat den Vorteil, dass ich die Last reduziere, die von Script-Kids erzeugt wird, die Port 22 nach "bekannten Benutzernamen" durchsuchen.
Die externen SSHD-Prozesse werden vom internen Prozess gesteuert
xinetd
und laufen parallel dazu . Im folgenden Beispiel verwende ich den Port 12345:sshd
Sie können dies in eine beliebige verfügbare freie Portnummer auf Ihrem System ändern. Ein höherer Wert macht es möglicherweise auch unwahrscheinlicher, dass dieser Port von einem "Quick Port Scan" gescannt wird .
Die
xinetd
Konfiguration ist:Die Datei
/etc/ssh/external-ssdh.config
kann eine Kopie Ihrer üblichensshd
Konfiguration sein. Stellen Sie sicher, dass die folgenden Anweisungen konfiguriert sind:Ich empfehle außerdem, die Authentifizierung mit öffentlichem Schlüssel zu erzwingen und die Kennwortauthentifizierung für den Internetzugang zu deaktivieren:
quelle
Listen-Ports können auch fest mit IP-Adressen verknüpft sein
/ etc / ssh / sshd_config:
quelle
Wie ich in einer verwandten Antwort erklärt habe, erlaubt der ssh-Client die Angabe des URI-Formats als
ssh://user@host:1234
. Zum Beispiel:Dabei ist 2222 die Portnummer. Ersetzen Sie die Portnummer, die Sie stattdessen verwenden möchten. Denken Sie natürlich daran, dass ssh (auf dem Host, zu dem Sie eine Verbindung herstellen möchten) zunächst den angegebenen Port abhören muss, um eine Verbindung zum angegebenen Port herzustellen
quelle
Es ist keine gute Idee, ssh auf dem Standardport (TCP / 22) auszuführen und weder von WAN IP 22 an den Port weiterzuleiten, der ssh-server auf LAN IP verwendet.
Im Allgemeinen sollte der SSH-Serverdienst diesen Port überwachen, um eine Verbindung herzustellen. Sie müssen
/etc/ssh/sshd_config
( beachte das d ) von#Port 22
bisPort 26
. Dh Kommentar entfernen und Port ändern. Vielleicht besser als 26 wäre etwas zufällig über 42895.Starten Sie den SSH-Server-Dienst neu
Dann können Sie vom ssh-client aus eine Verbindung herstellen
Bonus:
mosh
Wenn mosh package auf dem Server installiert ist, verwenden Sie
quelle