Ich versuche, meinen Heimserver über das Internet per SSH zugänglich zu machen.
Zunächst (bevor ich irgendwelche Konfigurationsdateien berührte, apt-get install openssh-server
konnte ich mich einfach sehr schnell (im Grunde sofort) mit meinem lokalen LAN verbinden. Ich tat das ssh username@localIP
und wurde sofort nach meinem Passwort gefragt und konnte mich anmelden.
Ich habe die sshd_config
Datei wie folgt bearbeitet (von den Standardeinstellungen):
# Package generated configuration file
# See the sshd_config(5) manpage for details
# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes
# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600
ServerKeyBits 1024
# Logging
SyslogFacility AUTH
LogLevel VERBOSE
# Authentication:
LoginGraceTime 120
PermitRootLogin no
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile %h/.ssh/authorized_keys
# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes
# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no
# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no
# Change to no to disable tunnelled clear text passwords
PasswordAuthentication no
# Kerberos options
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes
X11Forwarding no
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no
#MaxStartups 10:30:60
Banner /etc/issue.net
# Allow client to pass locale environment variables
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM yes
Dies waren die Anfangszustände der Zeilen, die ich in der obigen Datei geändert habe:
LogLevel INFO
PermitRootLogin without-password
#PasswordAuthentication yes
X11Forwarding yes
#Banner /etc/issue.net
Ich habe diese gespeichert und sudo service ssh restart
beendet und versucht, mich anzumelden, username@localIP
aber aus irgendeinem Grund dauert die Anmeldung ewig. Sobald ich angemeldet bin, scheint die Verbindung sehr schnell zu sein (was sie auch sollte, da sie in meinem LAN ist). Seltsam ist, dass die Anmeldung ewig dauert, selbst wenn ich nicht meinen Domänennamen eingebe.
Als nächstes habe ich Port 22 an die statische IP-Adresse meines Servers weitergeleitet und versucht, dies zu tun, [email protected]
aber die Anmeldung war noch langsamer. Die Verbindung zum Server dauerte etwa 2 Minuten. Und wenn ich verbunden bin, friert es zufällig ein und funktioniert nie, bis ich die Sitzung manuell beende, indem ich mein Terminal schließe und die Verbindung wiederherstelle. Manchmal stellt es überhaupt keine Verbindung her, es hängt einfach, nachdem ich eingebe .ssh [email protected]
Aber wenn ich das tue, ping example.com
scheinen alle Pakete sehr schnell mit einer durchschnittlichen Ping-Zeit von 10 ms zurückzukommen.
Sind meine Konfigurationseinstellungen irgendwie durcheinander geraten? Ich habe versucht, alles wieder in den vorherigen Zustand zurückzusetzen und den SSH-Server neu zu starten, aber selbst wenn ich es tue, dauert die Anmeldung immer noch ewig username@localIP@
.
Bisher habe ich nur einen Benutzer (außer root natürlich) auf dem Server und ich habe den RSA-Schlüssel id_rsa.pub manuell von meinem Client-Rechner in die Datei kopiert ~/.ssh/authorized_keys
. Ich musste sowohl den Ordner .ssh
als auch die Datei manuell erstellen, aber es scheint zu funktionieren und ich werde nicht nach einem Passwort gefragt.
Antwort1
Fügen Sie der Konfiguration Folgendes hinzu:
UseDNS no
Dies führt dazu, dass der SSH-ServernichtAnmeldeversuche über DNS auflösen.