SSH nur mit Public Key Authentifizierung erlauben
Aus Sicherheitsgründen kann man das Einloggen per SSH nur noch mit Public-Key Authentifizierung erlauben. Dazu muss zuerst ein Schlüsselpaar erzeugt werden:
# ssh-keygen -t rsa
Es empfiehlt sich eine Passphrase für den Schlüssel zu setzen. Danach kann der Public-Key auf den Rechner geladen werden:
# cd ~/.ssh && cat id_rsa.pub | ssh <Benutzer>@<Rechner> "cat >> .ssh/authorized_keys"
Nun muss die sshd.conf angepasst werden. Diese befindet sich sowohl auf FreeBSD, als auch auf OpenBSD unter /etc/ssh/sshd_config.
# echo "PubkeyAuthentication yes" >> /etc/ssh/sshd_config
# echo "PasswordAuthentication no" >> /etc/ssh/sshd_config
Nun muss der SSH-Daemon neu gestartet werden. Auf FreeBSD wird dies wie folgt gemacht:
# /etc/rc.d/sshd restart
Auf OpenBSD kann dies so gemacht werden:
# kill -HUP `ps -ax | grep sbin/sshd | grep -v grep | awk '{print $1}'`
Nun kann man sich nur noch mit der Public-Key Authentifizierung anmelden. Sollte man allerdings seinen Private-Key verlieren, so hat man sich per SSH aus dem Rechner ausgesperrt. Es lohnt sich also eine Sicherheitskopie von seinem Private-Key (~/.ssh/id_rsa) an einem sicheren Ort aufzubewahren.
Comments
Einfachere Variante um sshd unter OpenBSD neu zu starten:
# kill -HUP `cat /var/run/sshd.pid`
oder noch einfacher:
# pkill -HUP sshd
Linux-User sollten noch "UsePAM no" verwenden da PAM authentication meist gleichbedeutend mit password authentication ist.
man 5 sshd_config:
[... snipp ...]
Because PAM challenge-response authentication usually serves an equivalent role to password authentication, you should disable either PasswordAuthentication or
ChallengeResponseAuthentication.
[... snipp ...]
Genau das was ich gesucht hatte, danke.
Noch eine Sache die hier passt: root login abschalten und mit su arbeiten!