Dies ist eine alte Version des Dokuments!
Todo: anpassen des Unit-Files bei systemd 1)
Einloggen auf <Rechner> mit <Benutzer>: 2)
ssh <Benutzer>@<Rechner>
hängende ssh-Verbindung beenden:
~.
ssh-Verbindung pausieren:
~Strg+z
Dateien auf andere Rechner kopieren: 3)
scp <Datei> <Benutzer>@<Rechner>:/<Verzeichnis>
Dateien auf andere Rechner ohne lange Pfadangaben ins $HOME-Verzeichnis von <Benutzer> kopieren:
scp <Datei> <Benutzer>@<Rechner>:<Verzeichnis>
Fingerprint Hostkey überprüfen:
ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub
rm /etc/ssh/ssh_host_*key* dpkg-reconfigure openssh-server
Als Nutzer Schlüsselpaar erzeugen:
ssh-keygen -t rsa -b 4096 -C "Kommentar"
Public-Key auf anderen Rechner übertragen:
ssh-copy-id -i .ssh/id_rsa.pub nutzer05@notebook06
oder alternativ:
cat .ssh/id_rsa.pub | ssh nutzer05@notebook06 "cat >> .ssh/authorized_keys" ssh nutzer05@notebook06 "chmod 400 .ssh/authorized_keys"
/etc/ssh/sshd_config
:
UsePAM no PasswordAuthentication no
Alternativ (CentOS 7)
UsePAM yes ChallengeResponseAuthentication no PasswordAuthentication no
Problem: die Datei ~/.ssh/authorized_keys
gehört dem Nutzer, den man einschränken möchte.
command="/bin/cat /var/log/messages",no-agent-forwanding,no-X11-forwarding,no-port-forwarding ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHBqUtiLsRTLKquoVXKwhrPRD92CzaN9EOkVEfWoHfdC nutzer26@notebook26
Match User nutzer12 ForceCommand /usr/local/bin/cat_messages
#!/bin/sh /bin/cat /var/log/messages
ssh -A nutzer17@notebook17 ssh nutzer07@notebook07
+--------+ +------------+ +------------+ | ssh | | Hop Server | | server | | client | | notebook01 | | notebook02 | | | ================ssh========tunnel============> | | +--------+ +------------+ +------------+
centos 7, debian 8:
ssh -o ProxyCommand="ssh notebook01.linuxhotel.de -W %h:%p" notebook02.linuxhotel.de
mit einer ~/.ssh/config
reduziert sich das zu:
Host notebook02 Hostname notebook02.linuxhotel.de ProxyCommand ssh notebook01.linuxhotel.de -W %h:%p
ssh notebook02
Bei älteren SSH-Versionen muss zusätzlich netcat
bzw. nc
auf dem Jumphost installiert sein:
debian 6, centos 6:
Host notebook02 Hostname notebook02.linuxhotel.de ProxyCommand ssh -q notebook01.linuxhotel.de nc %h %p
optionale Absicherung, damit sich der Benutzer nicht auf dem Hop-Server einloggen kann
# nutzer02 wird auf notebook02 weitergeleitet: Match User nutzer02 ForceCommand ssh nutzer02@notebook02 $SSH_ORIGINAL_COMMAND # nutzer01 wird auf den mit der Option -W gewählten Server weitergeleitet: Match User nutzer01 ForceCommand ssh %u@%h $SSH_ORIGINAL_COMMAND
Mit eingeschaltetem Agent-Forwarding sollte man nur vertrauenswürdige Server besuchen. root-Benutzer auf dem Server können während die Verbindung besteht den ssh-Agent „mitbenutzen“. Dazu sucht root nach
-t
), -u
), -i
),sshd
beginnt ( -c
)PIDS="$(lsof -a -i -c sshd -u nutzer05 -t)"
Weiter sucht er nach dazu passenden Socket-Dateien ( /tmp/ssh-*/agent.$pid
), und speichert die letzte ( tail -n 1
) in der Variablen SSH_AUTH_SOCK
export SSH_AUTH_SOCK=$(for pid in $PIDS; do ls /tmp/ssh-*/agent.$pid; done 2>/dev/null | tail -n 1)
Auch ein ssh-agent auf dem client-Rechner kann ähnlich mitgenutzt werden:
export SSH_AGENT_PID=$(pgrep -u nutzer05 -x 'ssh-agent') SSH_AUTH_SOCK=$(lsof -a -U -p $SSH_AGENT_PID -F n | tail -n 1) export SSH_AUTH_SOCK=${SSH_AUTH_SOCK#n} ssh nutzer07@notebook07
ssh -v nutzer06@notebook06 ssh -vv nutzer06@notebook06
Allgemein:
ssh -L <lokaler Port>:<Zielrechner>:<Zielport> <Benutzer>@<ssh-Server>
Spezialfall X-Weiterleitung:
ssh -X <Benutzer>@<Rechner>
Dazu muß in der Datei /etc/ssh/sshd_config
folgender Eintrag vorhanden sein:
X11Forwarding yes
Tunnel Rückwärts:
ssh -R <Port auf ssh-Server>:<Zielrechner>:<Zielport> <Benutzer>@<ssh-Server>
Dazu muß in der Datei /etc/ssh/sshd_config
folgender Eintrag vorhanden sein:
GatewayPorts yes
Tunnel nachträglich anlegen:
~C help -L <lokaler Port>:<Zielrechner>:<Zielport>
noch nicht getestet
ssh -f -w 0:1 192.168.1.15 true ifconfig tun0 10.1.1.1 10.1.1.2 netmask 255.255.255.252 route add 10.0.99.0/24 10.1.1.2
/etc/ssh/sshd_config
:
PermitTunnel yes
ifconfig tun1 10.1.1.2 10.1.1.1 netmask 255.255.255.252 route add 10.0.50.0/24 10.1.1.1
ssh-agent
bei der Anmeldung nur gestartet, wenn das Verzeichnis ~/.ssh
existiert:mkdir -m 700 ~/.ssh