Webdevelopment
Drupal
Betriebssysteme
Design
Sonstige
Debian 10
https://linuxize.com/post/how-to-set-up-ssh-keys-on-debian-10/
http://www.planet-metax.de/html/Weblog/SSH-fuer-Fortgeschrittene-I-SSH-Tunnel/
Installation von SSH
http://wiki.ubuntuusers.de/SSH apt-get install openssh-server openssh-client
Authentifizierung über Public-Key-Verfahren
Die User-Authentifizierung erfolgt mittels Private/Public Keys. Wird beim Erstellen der Schlüsselpaare kein zusätzliches Kennwort hinterlegt, so ist die Anmeldung ohne Passwort-Eingabe auf dem RemotePC möglich. Diese Passwortlose Authentifizierung ist besonders vom Einsatz von Diensten und Scripts sinnvoll, die sich ohne Benutzermitwirkung automatisch auf Remote-Systemen einloggen können sollen. Im folgendem Beispiel gehen wir von dem Rechner A(nna) und dem Rechner B(ob) aus. Der Benutzer Anna (von Rechner A) möchte sich am Ende als User Bob am Rechner B ohne Eingabe eines Kennworts anmelden. Zunächst erstellt Anna ein Schlüsselpaar auf ihrem Rechner A: Rechner A: anna@AnnaPC:~/.ssh$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/anna/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/anna/.ssh/id_rsa. Your public key has been saved in /home/anna/.ssh/id_rsa.pub. The key fingerprint is: 73:06:8f:e2:fc:f8:7e:08:da:65:8d:e0:3a:0f:4c:29 anna@AnnaPC: The key's randomart image is: +--[ RSA 2048]----+ | | | | | . | | .. + | | E o...So+ | | + oo.++. | | o+o+ . | | +..o. . | | ooo+. | +-----------------+
Nun befinden sich zwei Dateien in ihrem ~/.ssh Verzeichnis: anna@AnnaPC:~/.ssh$ ls -al -rw------- 1 anna anna 1675 2009-12-02 16:02 id_rsa (<-- private Key) -rw-r--r-- 1 anna anna 397 2009-12-02 16:02 id_rsa.pub (<-- public Key)
Jetzt loggt sich anna per SSH auf dem Rechner B als User Bob ein und erstellt, sofern es noch nicht vorhanden ist, ein .ssh Verzeichnis in dessen Home-Folder: anna@AnnaPC:~/ ssh -p 22 bob@BobPC The authenticity of host '[BobPC]:22 ([192.168.7.10]:22)' can't be established. RSA key fingerprint is f0:c4:e1:3a:f7:59:ac:c5:c8:7b:41:bf:d3:4a:3f:3c. Are you sure you want to continue connecting (yes/no)? y Please type 'yes' or 'no': yes Warning: Permanently added '[BobPC]:22,[192.168.7.10]:22' (RSA) to the list of known hosts. bob@BobPC's password: bob@BobPC:~$ bob@BobPC:~$ mkdir .ssh
Jetzt kopiert anna ihren zuvor erstellen public-key (id_rsa.pub) in das .ssh Verzeichnis von bob. anna@AnnaPC:~/.ssh$ ls -al anna@AnnaPC:~/.ssh$ scp -P 22 /home/anna/.ssh/id_rsa.pub bob@BobPC:~/.ssh bob@BobPC's password: id_rsa.pub 100% 397 0.4KB/s 00:00
Damit sich anna in zukunft ohne Eingabe eines Kennwortes als Bob anmelden darf, muss sie nun noch ihren zuvor kopierten public-key den authorisierten Schlüsseln von Bob hinzufügen. Der public-key von anna wird mittels des Befehls cat an die datei /.ssh/authorized_keys angehängt. bob@BobPC:~/.ssh$ cat id_rsa.pub >> ~/.ssh/authorized_keys)
Jetzt kann anna testen, ob sie sich ohne pwd als bob am Rechner B anmelden kann. anna@AnnaPC:~$ ssh -p 22 bob@BobPC
oder alternativ anna@AnnaPC:~$ ssh -p 22 -l bob BobPC whoami
Security Tweaks
http://wiki.hetzner.de/index.php/Sshd
Generell: http://www.linux.com/learn/tutorials/305769-advanced-ssh-security-tips-and-tricks
http://www.howtoforge.com/set-up-ssh-with-public-key-authentication-debian-etch
1. Change Port cd /etc/ssh/ the file is called sshd_config Port 337 als Beispiel Protocol nur 2 2,1 -> 2
2. DS Key, siehe oben Erstmal key mit puttygen.exe erzeugen einmal private(ppk) und einmal public -> FAILED WICHTIG: immer eine shell offenhalten, WEIL, wenns ein root server ist kann man sich nach fehlerhafter config NICHT mehr einloggen keys auf dem server erzeugen!
ssh-keygen -t dsa
inhalt von id_dsa.pub nach .ssh/authorized_keys kopieren
Rechte checken, nur der user hat rw, der rest hat nix
keys löschen auf dem server, lokal speichern!
/etc/init.d/sshd restart
Testen.
Wenns nicht klappt mit der noch offenen shell zurückändern,fixen keys runterladen und mit puttygen eine ppk exportieren, andernfalls kann das file nicht zum einloggen benutz werden! 3. Timelock, nur x versuche pro minute Custom ssh banner
Banner /etc/ssh/ssh-banner.txt
das file wird als banner genommen. sicher nix, is aber ganz schön cool ^^
Disable root login INFO: wenn du das machst, dann is nix mehr mit WinSCP und einfach editieren. disable root login. create e new user and only permit this user to login PermitRootLogin no #only users can login AllowUsers username root foobar