SSH (Secure Shell) stellt verschlüsselte Remoteverbindungen her. Port 22 ist für SSH reserviert.
# display ssh banner vi /etc/banner.txt # execute command remotely ssh -user host 'hostname; pwd' # execute script remotely ssh -l user host 'bash -s' < script.sh # copy script to remote machine scp script.sh root@192.168.0.1:/tmp # Jumphost, connect to 20.30.40.50 and jump to 192.168.0.2 ssh -J user@20.30.40.50 user@192.168.0.2
ssh user@host // Custom Hostkeyalgorythmus, Key Exchange Algorythmus, Cipher ssh -oHostKeyAlgorithms=+ssh-dss -oKexAlgorithms=+diffie-hellman-group1-sha1 -c aes-256-cbc user@host
Beim Verbinden mit dem Server unter Benutzung des SSH-Keys überprüft der Server, ob der Client-Key gültig ist und lässt den Client dann entsprechend einloggen. Somit werden Passwörter zum Verbinden via SSH nicht mehr benötigt.
ssh-keygen -t ed25519 -C "TestInc" ssh-copy-id -i ~/.ssh/TestInc.pub user@host ssh -i ~/.ssh/TestInc user@host ssh -l <user> 1.2.3.4 ssh -p <port> 1.2.3.4
In der sshd_config:
Match User testuser AllowTcpForwarding yes PermitTunnel no PermitTTY no X11Forwarding no ForceCommand echo "Das ist ein Jump Host, kein direkter auf diesem System Login möglich."
User meldet sich an mit:
ssh -J testuser@jump-host root@internal-host
Für den User ein Keypair erstellen.
sudo -u testuser ssh-keygen -t rsa -b 4096 -f /home/testuser/.ssh/id_rsa
In der sshd_config:
Match User testuser AllowTcpForwarding no PermitTunnel no PermitTTY yes X11Forwarding no ForceCommand /usr/bin/ssh -i /home/testuser/.ssh/id_rsa -o StrictHostKeyChecking=no root@internal-host
User meldet sich ganz normal an:
ssh testuser@jump-host