Eine Einführung - Teil 11
Deutsche Angestellten Akademie
Secure System Administration (Sichere Systemverwaltung) zur Absicherung der Fernverwaltung von Servern. Secure Application Tunneling (Sicheres Tunneln) zum transparenten Schutz TCP/IP-basierender Anwendungen als „End-to-End-Security“.
Secure Remote Command Execution (Sichere Ausführung von Kommandos) zur Ausführung einzelner Kommandos auf einem anderen Rechner. Dabei werden stdin, stdout und stderr transparent weitergeleitet. Sonderfall davon:
Secure Subsystem Execution (Sichere Ausführung von Subsystemen) zur Ausführung von auf dem Server vordefinierter Kommandos, wobei stderr jedoch nicht weitergeleitet wird. Beispiel: Secure File Transfer (Sicherer Dateitransfer) zur Herstellung sicherer, automatisierter und interaktiver Dateitransfers.
/etc/ssh/ssh_config
~$ ssh [ -p port ] [user@]host
~$ ssh -p 1234 root@omikron.net
~$ ssh ::1
ssh-keygen -b 4096
scp neuer-super-key.pub user@server.de:~
ssh user@server.de
$ mkdir ~/.ssh
$ cat ~/neuer-super-key.pub >> ~/.ssh/authorized_keys
$ rm ~/neuer-super-key.pub
$ chmod 600 ~/.ssh/authorized_keys
Oder mit ssh-copy-id
SSH Key | ersetzt Passwort |
authorized keys | öffentliche Schlüssel die Zugriff erlauben ( Analogie: Schloß, das vom zugehörigen privaten Schl. geöffnet werden kann.) |
identity key | Privater Schlüssel, den SSH verwendet um den client zu authentisieren |
host key | öffentlicher SSH-Schlüssel des Servers |
Session Key | wird von den Kommunikations Partner ausgehandelt; verschlüsselt Daten während Übertragung |
Host gitlab.com
HostName gitlab.com
PreferredAuthentications=publickey
#PreferredAuthentications=password
IdentityFile ~/.ssh/gitlab-com
IdentitiesOnly yes
User git
Host *
user root
ServerAliveInterval 120
ServerAliveCountMax 15
~$ ssh root@server 'cd /etc; \
tar czvf - network/' | cat > etc_network_backup.tar.gz
~$ scp -r root@server:/etc/apache2 .
~$ scp omikron-net.conf \
root@server:/etc/apache2/sites-available/ .
~$ rsync -e ssh lk.schubertdaniel.de:/home/dany/backups/* \
/local/backup/dir/ >> backup.log 2>&1
Hinweise:
rsync
mit spezifischem key:
/usr/bin/rsync -e 'ssh -i /home/$USERNAME/.ssh/key-ohne-pw'
# Datei ~/.ssh/authorized_keys
# führt bei Anmeldung ls aus; lässt keine anderen Kommandos zu
command="/bin/ls -la ~" ssh-rsa AAAAB3.......
# oder
command="/bin/echo You invoked: $SSH_ORIGINAL_COMMAND" ssh-rsa AAAAB..
Um rsync zu verwenden ist ein wrapper script nötig:
# Datei ~/.ssh/authorized_keys
command="/absoluter/pfad/rsync-check.sh" ssh-rsa AAAAB3.......
#!/bin/bash
#
# rsync-check.sh
set -- $SSH_ORIGINAL_COMMAND
cmd="$1"; shift
case "$cmd" in
scp|rsync) exec "$cmd" "$@" ;;
*) echo "ERROR: request not permitted" ;;
esac