Standard:
$ ssh-keygen -t rsa
id_rsa
(private key) in ~/.ssh
speichern
$ ssh-keygen -p -f ~/.ssh/id_rsa
Achtung: Permissions müssen restriktiv gesetzt sein (700) für ./ssh Verzeichnis und (600) für die darin enthaltenen Keys!
$ chmod 700 .ssh && chmod 600 .ssh/*
Portforwarding, z.B. für eine VNC-Verbindung:
$ ssh -L 5920:localhost:5920 user@example.com
Socks-Proxy um Remote zu surfen:
$ ssh -N -D2000 user@example.com # Im Browser muss noch der Port 2000 als Socks-Proxy angegeben werden.
Forward local:4567 port via remote Port:8080
ssh -R *:8080:localhost:4567
Den generierten Public Key id_rsa.public
in ~/.ssh/authorized_keys
einfügen
Achtung: Permissions müssen restriktiv gesetzt sein (700) für ./ssh Verzeichnis und (600) für die darin enthaltenen Keys!
chmod 700 ~/.ssh && chmod 600 ~/.ssh/*
Danach muss ggf. in /etc/ssh/sshd_config
der entsprechende Nutzernamen im Abschnitt AllowUsers oder der Gruppenname in AllowGroups eintragen und der ssh-Daemon neu gestartet werden.
~/.ssh/authorized_keys
eingefügt sein, evtl. vorhandene Zeilenumbrüche entfernen!Funktioniert z.B. vom existierenden FreeBSD-Server zu einem neu aufgesetzten Linux-System mit Passwort-Authentisierung
$ ssh-copy-id -i ~/.ssh/authorized_keys user@example.com
$ vim /etc/ssh/sshd_config $ man sshd_config
Passwort Authentisierung ausschalten:
#PasswordAuthentication yes
ändern zu:
PasswordAuthentication no
Überprüfen der Syntax vor dem Start des SSH-Demons:
$ sshd -t
-A INPUT -p tcp -m tcp --dport 22 --tcp-flags SYN,RST,ACK SYN -m recent --set --name sshattack --rsource -A INPUT -p tcp -m tcp --dport 22 --tcp-flags SYN,RST,ACK SYN -m recent --rcheck --seconds 300 --hitcount 3 --name sshattack --rsource -j LOG --log-prefix "SSH Drop: " -A INPUT -p tcp -m tcp --dport 22 --tcp-flags SYN,RST,ACK SYN -m recent --rcheck --seconds 300 --hitcount 3 --name sshattack --rsource -j REJECT --reject-with tcp-reset -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT