Ssh howto: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(63 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
−
==Clientseite==
+
*[[ssh Grundlagen]]
−
ssh (OpenSSH client) ist ein Programm um auf einen entfernten Rechner zuzugreifen und dort Kommandos auszuführen. Es ersetzt
+
*[[ssh Verbindungsaufbau]]
−
die Programme rlogin und rsh und stellt eine sichere verschlüsselte Verbindung zwischen zwei Rechnern durch ein
+
*[[ssh Clientseite]]
−
(unsicheres) Netz her.
+
*[[ssh misc]]
 +
*[[ssh Serverseite]]
 +
*[[scp]]
 +
*[[rsync]]
 +
*[[ssh Jumphost]]
 +
*[[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]]
  
−
ssh verbindet sich mit dem Zielrechner, worauf der Benutzer seine Identität über verschiedene Methoden nachweisen muss.
+
*[[ssh Aufgaben]]
  
−
ssh [Optionen] Benutzer@Zielrechner [Kommando]
 
  
−
Wenn ein Kommando angegeben wird, wird dieses anstelle der Login-Shell ausgeführt.
+
*https://stackoverflow.com/questions/18880024/start-ssh-agent-on-login
  
−
===Optionen===
+
=Quellen=
−
* -1 : Erzwingt die ausschließliche Benutzung von ssh Protokollversion 1
+
*https://hitech-blog.com/wp-content/2010/08/ssh_marco_costa.pdf
−
* -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 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 (Port Forwarding) =
 
−
-f  lässt den Prozess im Hintergrund laufen
 
−
-g  erlaubt remoteusern den lokal geöffneten ssh tunnel zu benutzen
 
−
-p  gibt den Port an über den sich SSH verbinden soll
 
−
-N  ist eine nützliche Option um das öffnen einer remoteshell zu unterbinden
 
−
 
 
−
-R  leitet den Port vom remoteserver auf localhost weiter
 
−
-L  leitet den Port von localhost auf remoteserver weiter
 
−
    Format [bind_address:]port:host:hostport
 
−
    Wenn keine [bind_address:] angegeben wird localhost eingesetzt
 
−
 
 
−
ssh -p '''''SERVERPORT''''' -f -g -N  -l '''''USER''''' '''''SSHSERVER''''' -L '''''BINDADDRESS''''':'''''LOCALPORT''''':'''''ZIEL''''':'''''ZIELPORT'''''
 
−
 
 
−
Alles was auf '''''BINDADDRESS''''' port '''''LOCALPORT''''' ankommt schicke durch tunnel zu '''''ZIEL''''' port '''''ZIELPORT'''''
 
−
 
 
−
Beispiele:
 
−
 
 
−
*Umleiten von Jdownloader Linkgrabber von alice aus
 
−
**bob port 9666 ---> alice port 9666
 
−
root@alice:~# ssh -f -N ''bob'' -R localhost:9666:localhost:9666
 
−
*Umleiten von Jdownloader von bob aus
 
−
**bob port 5900 ---> quinn port 5900
 
−
root@bob:~# ssh -f -N quinn -l root -L 9666:localhost:9666
 
−
*Umleiten von Samba von charlie aus
 
−
**donald port 139 ---> charlie port 139
 
−
ssh -p 9387 -f -g -N ''SSHSERVER'' -L 139:''ZIEL'':139
 
−
 
 
−
*Umleiten  vom Remote Host noezel auf localhost
 
−
ssh -f -N noezel -l root -R 88:localhost:22
 
−
 
 
−
===Beispiel-Script:===
 
−
 
 
−
Der Kunde muss dieses Script ausführen (vorher downloaden), sodass wir Zugang haben ohne die Firewall zu bearbeiten.
 
−
 
 
−
Dieses script öffnet einen Tunnel auf gaius zu dem Kundenrechner.
 
−
 
 
−
 
 
−
#!/bin/bash
 
−
#Da gibt der Kunde den zu nutzenden User ein
 
−
read -p "user:" U     
 
−
#Tunnel wird bei Gaius geöffnet (-R) und führt zu localhost (Rechner von Kunde) über Port 8080 (frei wählbar)
 
−
ssh -gv $U@gaius.tuxmen.de -R localhost:8080:localhost:22   
 
−
 
 
−
 
 
−
 
 
−
->> Nun haben wir Zugriff indem wir ssh auf gaius mit dem angegeben Port aufbauen
 
−
 
 
−
 
 
−
Ports schliessen:
 
−
fuser -vk -n tcp 139
 
−
 
 
−
=ssh link=
 
−
==Firefox 3.5 and above==
 
−
(Works without installed Gnome libraries)
 
−
Type about:config into the Location Bar (address bar) and press Enter.
 
−
Right-click -> New -> Boolean -> Name: network.protocol-handler.expose.foo -> Value -> false (Replace foo with the protocol you're specifying)
 
−
Next time you click a link of protocol-type foo you will be asked which application to open it with.
 
−
 
 
−
Quelle:http://kb.mozillazine.org/Register_protocol
 
−
 
 
−
#!/bin/bash
 
−
## skript zum öffnent von ssh links ...
 
−
##
 
−
TERM=$(echo $1 | cut -d / -f 3)
 
−
SAVE=$IFS
 
−
IFS=":"
 
−
set $TERM
 
−
HOST=$1
 
−
PORT=$2
 
−
IFS=$SAVE
 
−
echo "HOST $HOST" >> /tmp/ssh.link
 
−
echo "PORT $PORT" >> /tmp/ssh.link
 
−
if test -z "$PORT"
 
−
  then
 
−
  gnome-terminal -e "ssh $HOST "
 
−
  echo then >> /tmp/ssh.link
 
−
  else
 
−
  echo else >> /tmp/ssh.link
 
−
  gnome-terminal -e "ssh $HOST -p $PORT"
 
−
fi
 
−
 
 
−
=Beispieleintrag fürs wiki=
 
−
ssh://gondor gondor
 
−
 
 
−
=vpn-pppd ssh Tunnelscript=
 
−
 
−
ssh nagus
 
−
cat /usr/local/sbin/vpn-pppd
 

Aktuelle Version vom 10. Dezember 2025, 06:20 Uhr