Ich habe einen Raspberry Pi-Cluster aus 3 Raspberry Pis, auf denen jeweils Ubuntu Server 20.04 in meinem Heimnetzwerk (192.168.0.n) läuft. Jedem Raspberry Pi wird über die Netplan-Konfiguration eine statische IP zugewiesen.
Beim Versuch, von meinem Ubuntu Desktop 20.04 aus per SSH eine Verbindung zu einem der Raspberry Pis herzustellen, dauert die SSH-Anmeldung entweder sehr lange, oder die Anmeldung erfolgt zwar, aber die Eingabe ist sehr langsam oder reagiert nicht.
Ich habe dies von einem Windows-Laptop mit PuTTYy im selben Netzwerk aus versucht und sehe dasselbe Verhalten, das schließlich zu folgendem Fehler führt:
Netzwerkfehler: Software verursachte Verbindungsabbruch
Auf jedem der Pis, auf denen SSHD läuft, habe ich UseDNS no
Folgendes festgelegt und auskommentiert. session optional pam_systemd.so
Dabei /etc/pam.d/common-session
bin ich im Wesentlichen den auf dieser Website definierten Schritten gefolgt:https://jrs-s.net/2017/07/01/slow-ssh-logins/
Mein Router wird von meinem ISP bereitgestellt: Sky UK.
Das Bizarre ist, dass ich JuiceSSH auf mein Android-Telefon heruntergeladen habe und mich mit jedem der Pis verbinden und erfolgreich Befehle ausführen kann.
Ich bin völlig ratlos. Ich bin für jede Hilfe oder Anleitung zur weiteren Fehlerbehebung dankbar.
Antwort1
Sie können die Ausführlichkeit des SSH-Befehls erhöhen, um ssh -vvv user@host
die Ursache der Verzögerung herauszufinden.
Das Problem wird durch mehrere Konfigurationen verursacht. Überprüfen Sie zunächst host
die Datei:
sudo nano /etc/hosts
Es würde eine Zeile mit 127.0.0.1 geben. Stellen Sie sicher, dass der Name Ihres Hostnamens davor korrekt ist. Wenn Sie ihn nicht haben, fügen Sie einfach hinzu:
127.0.0.1 hostname
Wenn Sie sich bezüglich des Hostnamens nicht sicher sind, können Sie ihn wie folgt herausfinden:
echo $HOSTNAME
Nach dem Speichern müssen Sie keinen Dienst neu starten und Sie werden die Geschwindigkeitssteigerung sehen. Wenn nicht, versuchen Sie die zweite Änderung.
nano /etc/ssh/sshd_config
Diese Datei enthält die SSH-Dienstkonfiguration und hat standardmäßig einige Parameter, die in Ihrem Fall möglicherweise nicht optimal sind. Denken Sie daran, sudo zu verwenden, damit Sie sie ändern können ;)
X11Forwarding
kann den Datentransfer verlangsamen, aber normalerweise ist es in Ordnung, es so zu lassen yes
. Dasselbe, mit PasswordAuthentication
dem die Verbindung einfacher und sicherer wird. Ändern und stellen Sie sie no
testweise ein und speichern Sie die Datei. Starten Sie den Dienst dann neu mit:
sudo service sshd restart
Es gibt Fälle, in denen die Befehlsausführung schnell ist, die Anmeldung über SSH jedoch langsam, und dann gibt es ein Problem mit der Authentifizierung. Um dies zu überprüfen, sind UseDNS
und UsePAM
in der sshd_config
Datei zwei der häufigsten Fälle. Um sie zu überprüfen, versuchen Sie Folgendes:
nano /etc/ssh/sshd_config
und fügen Sie sie dann hinzu oder bearbeiten Sie sie, falls vorhanden, wie folgt:
UsePAM no
UseDNS no
deaktivieren Sie beide gleichzeitig, um die Wirkung zu prüfen und vergessen Sie nicht, den ssh
Dienst nach dem Speichern zurückzusetzen.
Wenn Sie keine Verbesserung erzielen, machen Sie den Vorgang rückgängig und prüfen Sie, htop
ob verdächtige Prozesse ausgeführt werden. Überprüfen Sie die CPU- und Speicherauslastung und beenden Sie diese ggf.
Ich werde es nicht länger machen, also antworten Sie hierauf, um weitere Ideen zu erhalten, falls das Problem weiterhin besteht.
Antwort2
Ich habe endlich herausgefunden, warum die SSH-Sitzungen von meinem Ubuntu 20.04-Laptop zu meinem Raspberry Pi-Cluster (betrifft alle 3) über WLAN hängen blieben. Schalten Sie die Energieverwaltung für das WLAN-Gerät aus. Listen Sie zuerst den Status des Netzwerkgeräts auf:
sudo iwconfig
Wenn die Energieverwaltung eingeschaltet ist, schalten Sie sie aus, indem Sie in der folgenden Datei 3 in 2 ändern:
cat /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf
[connection]
wifi.powersave = 2
Ich musste meinen Laptop nach der Änderung neu starten.