Ssh howto: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(25 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]]
 +
*[[ssh passt id_rsa zu id_rsa.pub]]
 +
*[[ssh Windows]]
 +
=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 10. Dezember 2025, 06:20 Uhr