• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Gelöst Verbindung im Heim-Netzwerk

susino

Member
Hallo Zusammen,

daheim möchte ich den Datenaustausch zwischen dem Desktop-PC und dem Notebook via ssh ermöglichen.
Auf beide Computer läuft OpenSuse Leap 15.4 und beide sind mit der selben Fritz!Box verbunden: der PC über LAN-Kabel, das Notebook per WLAN. Die Pakete ssh-server und ssh-client sind auf beiden Geräten installiert.

Ich habe versucht, nach diesem Beitrag voranzugehen:
[gelöst]PC zu PC Kommunikation?

Wenn ich aber in der Konsole des PC <netbook-username>@<notebook-IP> eingebe bekomme ich:
Code:
geppino@localhost:~> ssh -p 22 geppino-nb@192.168.178.28
ssh: connect to host 192.168.178.28 port 22: No route to host

Wahrscheinlich muss auf beiden Geräten die Port 22 freigegeben werden.
Wie geht es?
Nach dem oben genannten Artikel soll man es unter Yast-->Firewall-->custom geschehen.
Die Area custom gibt es im Firewall von Leap 15.4 nicht. Heißt sie jetzt vielleicht internal?
Und muss für alle Port-Typen, TCP, UDP, SCTP, DCCP, freigegeben werden?

Vielen Dank im voraus für die Tipps!
 

marce

Guru
"no route to host" klingt eher nach einem Netzwerkproblem.

Wie sind denn die IP-Adressen der beiden Geräte? Geht ein Ping? Sind ggf. WLAN und Kabel-Netz am Router auch gegenseitig erreichbar oder von einander abgeschottet?
 

Sauerland

Ultimate Guru
1. Port 22 ist der Standardport, den musst du beim verbinden nicht mit angeben.
Nur wenn du auf dem Server in der /etc/ssh/sshd_config einen anderen port benutzt, musst du diesen mit angeben.

2. Poste vom Server als root:

Code:
firewall-cmd --list-all
 
OP
S

susino

Member
"no route to host" klingt eher nach einem Netzwerkproblem.

Wie sind denn die IP-Adressen der beiden Geräte? Geht ein Ping? Sind ggf. WLAN und Kabel-Netz am Router auch gegenseitig erreichbar oder von einander abgeschottet?
die IP-Adressen:
Desktop-PC: 192.168.178.27 (geppino@localhost)
Notebook: 192.168.178.28 (geppino-nb@linux)

Ping vom Desktop-PC:
geppino@localhost:~> ping 192.168.178.28
PING 192.168.178.28 (192.168.178.28) 56(84) Bytes an Daten.
64 Bytes von 192.168.178.28: icmp_seq=1 ttl=64 Zeit=76.4 ms
64 Bytes von 192.168.178.28: icmp_seq=2 ttl=64 Zeit=96.6 ms
64 Bytes von 192.168.178.28: icmp_seq=3 ttl=64 Zeit=16.5 ms
64 Bytes von 192.168.178.28: icmp_seq=4 ttl=64 Zeit=39.0 ms

... sind ggf. WLAN und Kabel-Netz am Router auch gegenseitig erreichbar oder von einander abgeschottet?
Ich glaube ja. Laut Fritz!Box dürfen alle am Heimnetz angeschlossenen Geräte selbständig Ports freigeben.
Das ist sicher der Fall zwischen dem Desktop-PC und den zwei Smartphones (via WLAN + KDE Connect).

1. Port 22 ist der Standardport, den musst du beim verbinden nicht mit angeben.
Nur wenn du auf dem Server in der /etc/ssh/sshd_config einen anderen port benutzt, musst du diesen mit angeben.
Das Ergebnis ist trotzdem dasselbe:
geppino@localhost:~> ssh geppino-nb@192.168.178.28
ssh: connect to host 192.168.178.28 port 22: No route to host

Code:
geppino@localhost:~> firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: dhcpv6-client kdeconnect
  ports:
  protocols:
  forward: no
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:
 
Zuletzt bearbeitet:

Sauerland

Ultimate Guru
Was ist der Server?
Du kannst dich vom Client zum Server verbinden, aber immer mit dem Usernamen, der auf dem Server vorhanden ist:
Also auf dem Client:
Code:
ssh -p 22 Username auf Server@ServerIP
 
OP
S

susino

Member
Was ist der Server?
Du kannst dich vom Client zum Server verbinden, aber immer mit dem Usernamen, der auf dem Server vorhanden ist:
Also auf dem Client:
Code:
ssh -p 22 Username auf Server@ServerIP
Code:
geppino-nb@linux:~> ssh -p 22 geppino@192.168.178.27
ssh: connect to host 192.168.178.27 port 22: No route to host

Vielleicht sieht man mit
Code:
ssh -vvv geppino-nb@192.168.178.28
wo das Problem ist.

Code:
geppino@localhost:~> ssh -vvv geppino-nb@192.168.178.28
OpenSSH_8.4p1, OpenSSL 1.1.1l  24 Aug 2021 SUSE release 150400.7.28.1
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 20: Applying options for *
debug2: resolve_canonicalize: hostname 192.168.178.28 is address
debug3: expanded UserKnownHostsFile '~/.ssh/known_hosts' -> '/home/geppino/.ssh/known_hosts'
debug3: expanded UserKnownHostsFile '~/.ssh/known_hosts2' -> '/home/geppino/.ssh/known_hosts2'
debug2: ssh_connect_direct
debug1: Connecting to 192.168.178.28 [192.168.178.28] port 22.
debug1: connect to address 192.168.178.28 port 22: No route to host
ssh: connect to host 192.168.178.28 port 22: No route to host

Nachfrage eines Laien:
ssh-server und ssh-client sind auf beiden Geräten installiert; soll ich vielleicht, ssh-client vom PC und ssh-server vom Netbook deinstallieren?
 

admine

Ultimate Guru
Läuft denn der Dienst:
Code:
systemctl status sshd.service
Deinstallieren musst du nichts, es kann beides installiert sein.
 

admine

Ultimate Guru
BTW wie heißt denn nun der User auf dem ssh-Server, auf den du dich verbinden willst?
geppino oder geppino-nb?
 

marce

Guru
Google meint, die größte Wahrscheinlichkeit spricht für eine aktive Firewall auf dem Zielhost 192.168.178.28 - prüf das mal - und poste die gewünschten Daten bitte auch so, daß wir sicher sein können, auf welchem Host Du welchen Befehl abgesetzt hast.
 
OP
S

susino

Member
Hallo,

wie der Server heißt? Es ist Definitionsfrage oder?
In der Regel benutze ich den Desktop-PC und dieser verfügt über alle Daten. Wenn ich weiß, ich werde lange unterwegs sein, kopiere ich die Files, die wahrscheinlich gebraucht und eventuell geändert werden vom Desktop-PC auf den Notebook - bisher mittels einer externen Festplatte. Wenn ich wieder Daheim bin aktualisiere die Files auf dem Desktop-PC mittels externer Festplatte und Unison oder Ähnlichen.
Nach dem. könnte man der Desktop-PC als "Server" und das Netbook als "Client"definieren.

Desktop-PC heißt: @localhost (geppino@localhost)
Netbook heißt: @linux (geppino-nb@linux)

Ich glaube, wir haben es:
Code:
geppino@localhost:~> systemctl status sshd.service
○ sshd.service - OpenSSH Daemon
     Loaded: loaded (/usr/lib/systemd/system/sshd.service; disabled; vendor preset: disabled)
     Active: inactive (dead)

Wie aktiviere ich denn ssh?
 
OP
S

susino

Member
Hallo Admin,

nun ist ssh auf beide computer enabled und gestartet.
aber es bleibt wie vorher:
Code:
geppino@localhost:~> ssh geppino-nb@192.168.178.28
ssh: connect to host 192.168.178.28 port 22: No route to host

Soll ich die Port 22 in Firewall freigeben? und in welchem Bereich? Vielleicht "internal"?
Oder muss ich die Computer neu starten?
 
OP
S

susino

Member
nach dem Stoppen der Firewall auf beide Computers:
Code:
geppino@localhost:~> ssh geppino-nb@192.168.178.28
The authenticity of host '192.168.178.28 (192.168.178.28)' can't be established.
ECDSA key fingerprint is SHA256:6rzYuxhXiPRZ7VP3ZZvdPC2H7tX9HRmDhXUrkWexU2o.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.178.28' (ECDSA) to the list of known hosts.
Password:
Have a lot of fun...

Das heißt, mein Verständnis nach, dass ich jetzt die Port 22 freigeben muss, oder?
 

Sauerland

Ultimate Guru
Das heißt, mein Verständnis nach, dass ich jetzt die Port 22 freigeben muss, oder?
Ja, wobei ich aber auf jedem Rechner einen anderen Port für ssh in der sshd_config benutzen würde, dann kannst du auch wenn du nicht zu Hause bist, Dateien hin und herschieben, benötigst dann einen Dienst, um die "Internet IP" deines Routers zu kennen (z.B. noip) und sich dann im Router eine Portweiterleitung auf den entsprechenden Rechner freizuschalten.

Ebenso würde ich dann die Firewall aktiv lassen und nur die Netzwerkkarte einem Profil zuzuordnen und den entsprechenden Port freigeben.
 
OP
S

susino

Member
Ja, wobei ich aber auf jedem Rechner einen anderen Port für ssh in der sshd_config benutzen würde, dann kannst du auch wenn du nicht zu Hause bist, Dateien hin und herschieben, benötigst dann einen Dienst, um die "Internet IP" deines Routers zu kennen (z.B. noip) und sich dann im Router eine Portweiterleitung auf den entsprechenden Rechner freizuschalten.

Ebenso würde ich dann die Firewall aktiv lassen und nur die Netzwerkkarte einem Profil zuzuordnen und den entsprechenden Port freigeben.
Oh neee ... Deine Lösung ist sicher sehr elegant und professionell, mir aber zu sehr kompliziert. Darüber hinaus finde ich in meinem Fall sinnlos DSL-Router und den sogenannten Server (Desktop-PC) an Strom oder in Standby + WOL zu halten und dies wegen ein paar Daten, die ich ja auf der Festplatte des Netbooks einpacken kann.

Jetzt ist die Firewall auf beide Rechnern wieder aktiv und ich muss wohl die Port 22 frei geben, aber in welcher Zone?
susejunky hat geschrieben:
wenn Du NetworkManager verwendest, musst Du die Freigabe für den Bereich vornehmen, der in dem eingesetzten NetworkManager-Verbindungsprofil festgelegt ist.
Nach meiner Logik heißt es:
a) Feststellen ob die Rechner NetworkManager verwenden.
-> bei mir ist das Paket installiert, weiß aber nicht ob er im Einsatz kommt.
wie kann ich das feststellen?
b) Wenn NetworkManager benutzt wird, soll ich den Bereich (ich vermute in Firewall) herausfinden, wo der NetworkManager-Verbindungsprofil festgelegt.
-> wie finde ich diesen Bereich aus? soll ich manuell alle Firewall-Zonen nach "NetworkManager" durchstöbern? Gibt es keine Abfrage durch die Konsole?
c) In demselben Bereich dann die Port 22 freigeben (ich werde die Firewall-GUI von Yast verwenden.

Könntet ihr mir dabei helfen?
 
Oben