In folgendem Artikel wird erklärt wie man sich unter Linux nur per SSH Key Login am System anmelden kann.
Root direkten Login verbieten
ACHTUNG:
Bitte gehen Sie sorgfältig vor, da Sie sich ansonsten selbst aussperren können. Wenn Sie den direkten Root Login verbieten, muss natürlich ein weiterer User am System vorhanden sein!
SSH ist das Standardwerkzeug für Linux Administratoren. Um den Server besser abzusichern, sollte man den direkten Root Login verbieten.
Man kann sich noch immer mit einem anderen Benutzer am Server anmelden und dann per
su
zum Root User wechseln.
Dazu bearbeiten wir die
/etc/ssh/sshd_config
und setzten
PermitRootLogin yes
auf
PermitRootLogin no
Nun kann man sich noch einen entsprechenden SSH Key einrichten. Dieser beinhaltet einen öffentlichen und einen privaten Schlüssel.
Der öffentliche Schlüssel wird am Server abgelegt, der private Schlüssel bleibt „am Mann“.
SSH Config für SSH Key anpassen
Am entfernten Server muss nun noch die
/etc/ssh/sshd_config
bearbeitet werden. Ändern Sie folgende Werte:
aktuell:
RSAAuthentification yes
neu:
RSAAuthentification no
aktuell:
#AuthorizedKeysFile %h/.ssh/authorized_keys
neu:
AuthorizedKeysFile %h/.ssh/authorized_keys
aktuell:
#IgnoreUserKnowHosts yes
ChallengeResponseAuthentication yes
PasswordAuthentification yes
neu:
IgnoreUserKnowHosts yes
ChallengeResponseAuthentication no
PasswordAuthentification no
Starten Sie anschließend den SSH Dienst neu:
/etc/init.d/ssh restart
Generieren eines Schlüsselpaars unter Linux
ssh-keygen -d
Das Schlüsselpaar wird nun erzeugt. Anschließend wird nach dem Namen des Schlüssels und dem Speicherort gefragt.
WICHTIG: Schützen Sie Ihren privaten Schlüssel mit einem Kennwort.
Sie finden nun im Homeverzeichnis Ihres Users unter
/home/$USERNAME/.ssh
das Schlüsselpaar.
id_dsa
id_dsa.pub
Der öffentliche Schlüssel befindet sich in der Datei
id_dsa.pub
Den Inhalt dieser Datei speichern wir nun auf dem entfernten Server unter:
/home/$USERNAME/.ssh/authorized_keys
Wenn alles geklappt hatte, sollten Sie sich mit folgendem Befehl auf dem entfernten Server anmelden können:
ssh $SERVERIP_ODER_HOSTNAME_DES_ENTFERNTEN_SERVERS -i /home/$USERNAME/.ssh/id_dsa
[…] SSH Key Login unter Linux | Der Blog von Florian Fritsch […]