Ssh howto: Unterschied zwischen den Versionen

Aus xinux.net
Zur Navigation springen Zur Suche springen
 
(23 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
*[[ssh Grundlagen]]
 
*[[ssh Grundlagen]]
 
*[[ssh Verbindungsaufbau]]
 
*[[ssh Verbindungsaufbau]]
 
+
*[[ssh Clientseite]]
==Clientseite==
+
*[[ssh misc]]
ssh (OpenSSH client) ist ein Programm um auf einen entfernten Rechner zuzugreifen und dort Kommandos auszuführen. Es ersetzt
+
*[[ssh Serverseite]]
die Programme rlogin und rsh und stellt eine sichere verschlüsselte Verbindung zwischen zwei Rechnern durch ein
+
*[[scp]]
(unsicheres) Netz her.
+
*[[rsync]]
 
+
*[[ssh Jumphost]]
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==
 
===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)
 
 
*[[ssh Tunnel]]
 
*[[ssh Tunnel]]
 +
*[[ssh Socks Proxy]]
 +
*[[ssh VPN]]
 +
*[[ssh passwort auf key]]
 +
*[[ssh Algorythmen]]
 +
*[[ssh agent start]]
 +
*[[ssh host finger print]]
 +
=Authentifizierung mit Schlüssel=
 +
*[[SSH Agent]]
 +
*[[Authentifizierung mit Schlüssel]]
 +
*[[SSH-Agent Windows Powershell]]
  
=vpn-pppd ssh Tunnelscript=
+
*[[ssh Aufgaben]]
 
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
 
<pre>
 
Host 123.123.123.123
 
    KexAlgorithms +diffie-hellman-group1-sha1
 
</pre>
 
=check der laufenden Konfig mit den Standardwerten=
 
*sshd -T
 
  
=check Algorithmen=
+
*https://stackoverflow.com/questions/18880024/start-ssh-agent-on-login
*sshd -T | grep "\(ciphers\|macs\|kexalgorithms\)"
 
<pre>
 
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
 
</pre>
 
<pre>
 
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
 
</pre>
 
<pre>
 
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
 
</pre>
 
;Bei Sicherheitsproblemen diese in die /etc/ssh/sshd_config kopieren und die unsicheren entfernen.
 
  
 
=Quellen=
 
=Quellen=
 
*https://hitech-blog.com/wp-content/2010/08/ssh_marco_costa.pdf
 
*https://hitech-blog.com/wp-content/2010/08/ssh_marco_costa.pdf

Aktuelle Version vom 22. Februar 2023, 13:13 Uhr