Ssh howto: Unterschied zwischen den Versionen

Aus xinux.net
Zur Navigation springen Zur Suche springen
Zeile 1: Zeile 1:
 
*[[ssh Grundlagen]]
 
*[[ssh Grundlagen]]
 
*[[ssh Verbindungsaufbau]]
 
*[[ssh Verbindungsaufbau]]
 
+
*[[ssh Clientseite]]
==Clientseite==
 
ssh (OpenSSH client) ist ein Programm um auf einen entfernten Rechner zuzugreifen und dort Kommandos auszuführen. Es ersetzt
 
die Programme rlogin und rsh und stellt eine sichere verschlüsselte Verbindung zwischen zwei Rechnern durch ein
 
(unsicheres) Netz her.
 
 
 
ssh verbindet sich mit dem Zielrechner, worauf der Benutzer seine Identität über verschiedene Methoden nachweisen muss.
 
 
 
ssh [Optionen] Benutzer@Zielrechner [Kommando]
 
 
 
Wenn ein Kommando angegeben wird, wird dieses anstelle der Login-Shell ausgeführt.
 
 
 
===Optionen===
 
* -1 : Erzwingt die ausschließliche Benutzung von ssh Protokollversion 1
 
* -2 : Erzwingt die ausschließliche Benutzung von ssh Protokollversion 2
 
* -4 : Erzwingt die ausschließliche Benutzung von IPv4 Adressen
 
* -6 : Erzwingt die ausschließliche Benutzung von IPv6 Adressen
 
* -b ''Quelladresse'' : Benutzt die ''Quelladresse'' als Ursprung für die Verbindung. Nur nützlich bei Systemen mit
 
mehreren (IP-)Adressen
 
* -C : Aktiviert Kompression falls möglich. Dies ist für langsame Verbindungen (z.B. über 56k Modem) gedacht und
 
würde schnelle Netzwerke verlangsamen
 
* -l ''Benutzer'' : Gibt ''Benutzer'' an, alternativ zu ''Benutzer''@Zielrechner
 
* -p ''port'' : Gibt Zielport an
 
* -V : Zeigt die Versionsnummer an
 
* -v : ausführliche Ausgabe
 
* -X : Erlaubt X11 forwarding, damit können entfernte Programme mit grafischen Benutzerinterface (GUI) lokal angezeigt werden
 
* -x : Verbietet X11 forwarding
 
 
 
Beispiele
 
 
 
Zugriff auf einen bisher unbekannten Zielrechner
 
root@zero:~# ssh root@alita
 
The authenticity of host 'alita (192.168.242.10)' can't be established.
 
RSA key fingerprint is 8c:d1:1f:d2:5e:76:cd:75:74:c4:b7:b2:c7:f6:50:78.
 
Are you sure you want to continue connecting (yes/no)? yes
 
Warning: Permanently added 'alita,192.168.242.10' (RSA) to the list of known hosts.
 
root@alita's password: Passwort_das_nicht_angezeigt_wird
 
...
 
root@alita:~#
 
Um die Identität des Zielrechners zu verifizieren, kann man den den Fingerprint des öffentlichen RSA Schlüssels
 
auf der Serverseite ausgeben lassen. Dieser kann dann mit dem oben angezeigten verglichen werden.
 
 
 
Zugriff auf bekannten Zielrechner
 
root@zero:~# ssh alita
 
root@alita's password: Passwort_das_nicht_angezeigt_wird
 
...
 
root@alita:~#
 
 
 
Zugriff als Benutzer christian und auf Port 9998
 
root@zero:~# ssh alita -l christian -p 9998
 
christian@alita's password: Passwort_das_nicht_angezeigt_wird
 
...
 
christian@alita:~$
 
 
 
Ausführen eines Kommandos auf dem Zielrechner
 
root@zero:~# ssh alita cat /etc/hostname
 
root@alita's password:
 
alita
 
root@zero:~#
 
 
 
Ausführen eines grafischen Programms auf dem Zielrechner und lokal anzeigen
 
root@zero:~# ssh -X root@alita kate
 
 
 
[[Image:kate.jpg]]
 
 
 
===Authentifizierung mit Schlüssel===
 
====Schlüsselpaar erstellen====
 
xinux@zero:~$ ssh-keygen
 
Generating public/private rsa key pair.
 
Enter file in which to save the key (/home/xinux/.ssh/id_rsa):
 
Enter passphrase (empty for no passphrase):
 
Enter same passphrase again:
 
Your identification has been saved in /home/xinux/.ssh/id_rsa.
 
Your public key has been saved in /home/xinux/.ssh/id_rsa.pub.
 
The key fingerprint is:
 
a7:13:ec:54:a3:4f:29:32:f8:98:04:ea:0c:b9:62:04 xinux@zero
 
The key's randomart image is:
 
+--[ RSA 2048]----+
 
|                |
 
|                |
 
|E .      o      |
 
|.o . . . o o    |
 
|+.  o o S +      |
 
|=. . + = B      |
 
|o+  o . + .      |
 
|o        .      |
 
|                |
 
+-----------------+
 
xinux@zero:~$
 
 
 
====Übertragen des öffentlichen Schlüssels====
 
=====Ubuntu=====
 
xinux@zero:~$ ssh-copy-id -i .ssh/'''id_rsa.pub''' root@alita
 
root@alita's password: Passwort_das_nicht_angezeigt_wird
 
Now try logging into the machine, with "ssh 'root@alita'", and check in:
 
 
  .ssh/authorized_keys
 
 
to make sure we haven't added extra keys that you weren't expecting.
 
 
xinux@zero:~$
 
 
 
=====ESXI=====
 
xinux@zero:~$ cat .ssh/id_rsa.pub | ssh root@esxi \
 
'cat >> /etc/ssh/keys-root/authorized_keys'
 
 
 
====Einloggen auf Remoterechner====
 
root@zero:~# ssh root@alita
 
Linux alita 2.6.28-13-generic #44-Ubuntu SMP Tue Jun 2 07:57:31 UTC 2009 i686
 
 
The programs included with the Ubuntu system are free software;
 
the exact distribution terms for each program are described in the
 
individual files in /usr/share/doc/*/copyright.
 
 
Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
 
applicable law.
 
 
To access official Ubuntu documentation, please visit:
 
http://help.ubuntu.com/
 
 
0 packages can be updated.
 
0 updates are security updates.
 
 
Last login: Thu Jul  2 13:54:13 2009 from zero.alpha.quadrant
 
root@alita:~#
 
 
 
 
 
===scp secure copy===
 
scp steht für Secure Copy und ermöglicht es, Dateien in einem Netzwerk zu kopieren. Es baut auf ssh auf und benutzt
 
entsprechend Authentifizierung und Verschlüsselung.
 
 
 
scp [Optionen] Benutzer@Rechner1:/Pfad/zu/Datei lokaler_Dateipfad
 
scp [Optionen] lokaler Dateipfad Benutzer@Rechner2:/Pfad/zu/Datei2
 
 
 
====Optionen====
 
* -1 : Erzwingt die ausschließliche Benutzung von ssh Protokollversion 1
 
* -2 : Erzwingt die ausschließliche Benutzung von ssh Protokollversion 2
 
* -4 : Erzwingt die ausschließliche Benutzung von IPv4 Adressen
 
* -6 : Erzwingt die ausschließliche Benutzung von IPv6 Adressen
 
* -C : Benutzt Komprimierung
 
* -P port: Benutzt Port auf dem Zielrechner; Achtung: großes P!
 
* -p : Verändert nicht die Zeiten der letzten Veränderung der Datei
 
* -r : rekursives Kopieren; scp folgt dabei auch symbolischen Links
 
* -v : ausführliche Ausgabe
 
 
 
 
 
Beispiele
 
 
 
Kopieren aller Dateien und Verzeinissen von einem lokalen Verzeichnis in ein entferntes Verzeichnis
 
root@zero:~# scp -r /etc/* root@alita:/tmp/
 
root@alita's password:
 
powerbtn.sh                                100%  517    0.5KB/s  00:00
 
...
 
 
 
Kopieren eines entfernten Verzeichnisses in ein lokales Verzeichnis
 
root@zero:~# scp -r root@alita:/root /root/alita_backup/
 
root@alita's password:   
 
.bashrc                                      100% 2227    2.2KB/s  00:00 
 
...
 
  
 
==Serverseite==
 
==Serverseite==

Version vom 9. August 2021, 18:24 Uhr

Serverseite

SSH Server installieren

root@alita:~# apt-get install openssh-server
...

Konfigurationsdatei

/etc/ssh/sshd_config

# What ports, IPs and protocols we listen for
Port 22   
                            
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::                                                           
#ListenAddress 0.0.0.0                                                      
Protocol 2                                                                  
# HostKeys for protocol version 2                                           
HostKey /etc/ssh/ssh_host_rsa_key                                           
HostKey /etc/ssh/ssh_host_dsa_key                                           
#Privilege Separation is turned on for security                             
UsePrivilegeSeparation yes                                                  

# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600                         
ServerKeyBits 768                                    
...

Zusätzlichen Port zum Lauschen auf Anfragen hinzufügen

/etc/ssh/sshd_config

# What ports, IPs and protocols we listen for
Port 22   
Port 9998                             
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::                                                           
#ListenAddress 0.0.0.0

RSA Key Fingerprint anzeigen

root@alita:/etc/ssh# ssh-keygen -f /etc/ssh/ssh_host_rsa_key.pub -l
2048 8c:d1:1f:d2:5e:76:cd:75:74:c4:b7:b2:c7:f6:50:78 /etc/ssh/ssh_host_rsa_key.pub (RSA)

vpn-pppd ssh Tunnelscript

ssh nagus
cat /usr/local/sbin/vpn-pppd

enable diffie-hellman-group1-sha1 key exchange

mit dem direkten befehl:

  • ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 123.123.123.123

dauerhaft eintragen:

  • /etc/ssh/ssh_config
Host 123.123.123.123
    KexAlgorithms +diffie-hellman-group1-sha1

check der laufenden Konfig mit den Standardwerten

  • sshd -T

check Algorithmen

  • sshd -T | grep "\(ciphers\|macs\|kexalgorithms\)"
ciphers 3des-cbc,blowfish-cbc,cast128-cbc,arcfour,arcfour128,arcfour256,aes128-cbc,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com
macs hmac-sha1,hmac-sha1-96,hmac-sha2-256,hmac-sha2-512,hmac-md5,hmac-md5-96,hmac-ripemd160,hmac-ripemd160@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha1-etm@openssh.com,hmac-sha1-96-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-md5-etm@openssh.com,hmac-md5-96-etm@openssh.com,hmac-ripemd160-etm@openssh.com,umac-64-etm@openssh.com,umac-128-etm@openssh.com
kexalgorithms diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group1-sha1,curve25519-sha256@libssh.org
Bei Sicherheitsproblemen diese in die /etc/ssh/sshd_config kopieren und die unsicheren entfernen.

Quellen