Wiki-Quellcode von SSH

Zuletzt geändert von Aysegül Omus am 2024/04/18 13:24

Verstecke letzte Bearbeiter
wikibot 1.1 1 = SSH Zugriff =
2
3 {{toc/}}
4
5
6 {{html wiki="true"}}
7 <a name='Fingerprints'></a>
8 {{/html}}
9
10
11 = 0. Fingerprints =
12
13 Ein Schlüsselfingerprint bei SSH ist ein Hash aus dem Public Key des Hosts und dient der Verifikation und Identifikation des Servers. Damit kann zum Beispiel überprüft werden, ob sich ein Host ändert (z.B. wenn der DNS Server gehackt wurde und lxhalle.in.tum.de auf einmal auf einen bösen Server weisen würde).
14
15 Die ECDSA Keys wurden aus Sicherheitsgründen deaktiviert.
16
17 == lxhalle.in.tum.de ==
18
19 In der folgenden Tabelle sind die Fingerprints für **lxhalle.in.tum.de** aufgelistet.
Aysegül Omus 60.1 20
wikibot 1.1 21 |= lxhalle|= MD5-Fingerprint|= SHA256-Fingerprint
22 | Ed25519 | ##MD5:f8:73:a4:f9:47:8e:a2:ba:11:59:19:35:bf:d6:c7:c4## | SHA256:dSj0mkyuOXEdpKGGJmXkvhDnvbjGmGCYQXA0pV8Pe4s
Aysegül Omus 60.1 23 | RSA | {{html wiki="true"}}<span>MD5:4b:84:7e:c4:cf:b7:ff:fb:eb:d0:0c:7b:c3:97:05:54</br></span>{{/html}} | SHA256:xJrFkhNs9pwibJFZZB5LvcrltWxfAIovk/UjKAXkIW4
wikibot 1.1 24 Diese Fingerprints wurden zuletzt am 04.04.2019 verifiziert.
25
26 == ssh.ma.tum.de ==
27
28 In der folgenden Tabelle sind die Fingerprints für **ssh.ma.tum.de** aufgelistet.
Aysegül Omus 60.1 29
wikibot 1.1 30 |= ssh.ma.tum.de|= MD5-Fingerprint|= SHA256-Fingerprint
31 | Ed25519 | ##MD5:70:5d:b8:5f:51:69:60:07:22:a4:45:65:7b:c5:99:b9## | ##SHA256:EbNhVTkW+74PX0tQNb9bai0HXAVcQLC9lOeS+BgatPM##
32 | RSA | ##MD5:f0:07:65:2b:45:83:19:15:d9:fa:96:e4:5e:bc:8c:43## | ##SHA256:4J5P9HV9KrmMS6aKWYukNjVpaSFBrea2iQvXZOCQ7sQ##
33
34 {{html wiki="true"}}
35 <a name='OpenSSH'></a>
36 {{/html}}
37
38
Aysegül Omus 60.1 39 = 1. OpenSSH =
wikibot 1.1 40
41 [[SSH>>https://www.ssh.com/]] (Secure Shell) ist ein Tool für die sichere Systemverwaltung, Dateiübertragung und andere Kommunikation über das Internet oder ein anderes nicht vertrauenswürdiges Netzwerk. Es verschlüsselt Identitäten, Passwörter und übertragene Daten, damit diese nicht abgehört und gestohlen werden können. [[OpenSSH>>https://www.openssh.com/]] ist eine Open-Source-Implementierung des SSH-Protokolls.
42
Narine Sumina 63.1 43 OpenSSH liefert folgende Tools mit:
Aysegül Omus 60.1 44
wikibot 1.1 45 * SSH (Secure Shell Client, login auf einem remote System, Aufbau von Tunnel)
46 * SCP (Secure Copy Protocol, cp über einen SSH Tunnel)
47 * SFTP (Secure File Transfer Protocol, ftp über einen SSH Tunnel)
48 * ssh-add, ssh-keysign, ssh-keyscan, ssh-keygen und ssh-agent (Keymanagement)
49 * sshd (SSH Server)
50 * sftp-server (SFTP Server)
Narine Sumina 63.1 51
Ana Villalobos González 71.1 52 Auf Linux und MacOS ist OpenSSH in der Regel vorinstalliert und es exisitert auch eine Implementierung für Windows, die auf Windows 10 seit dem [[“Windows 10 fall creators update”>>https://github.com/PowerShell/Win32-OpenSSH/wiki/Project-Status]] mitgeliefert wird.
wikibot 1.1 53
54 Unter Programme und Features lässt es sich seitdem aktivieren und seit etwa April 2018 sollte es standardmäßig aktiviert sein, wenn man auf dem aktuellstem Updatestand ist.
55
56
57 {{html wiki="true"}}
58 <a name='OpenSSHVerbindung'></a>
59 {{/html}}
60
61
Aysegül Omus 61.1 62 == 1.1. SSH Verbindung mit Passwort ==
wikibot 1.1 63
Aysegül Omus 76.1 64 Öffnen Sie das Terminal (MacOS / Linux) oder die PowerShell (Windows). In diesem kann man nun mit eine SSH-Verbindung aufbauen.
Narine Sumina 63.2 65
66 (% class="box" %)
67 (((
Aysegül Omus 87.1 68 $> ssh CIT-username@hostname
Narine Sumina 63.2 69 )))
wikibot 1.1 70
Aysegül Omus 87.1 71 Also in unserem Fall z.B.
Narine Sumina 63.2 72
Narine Sumina 63.3 73 (% class="box" %)
74 (((
Aysegül Omus 76.1 75 $> ssh musterma@lxhalle.in.tum.de oder $> ssh musterma@ssh.ma.tum.de
Narine Sumina 63.3 76 )))
wikibot 1.1 77
Ana Villalobos González 69.1 78 Falls der Server unbekannt ist, also die Verbindung zum ersten Mal aufgebaut wird oder die //known_hosts// Datei gelöscht wurde, ist eine Bestätigung des Fingerprints des public key des Servers gefragt.
wikibot 1.1 79
Narine Sumina 63.3 80 (% class="box" %)
81 (((
82 ~> The authenticity of host ‘<i>server (serverip)</i>’ can’t be established.
83 ~> ECDSA key fingerprint is <i>server fingerprint</i>
84 ~> Are you sure you want to continue connecting (yes/no)?
85 )))
wikibot 1.1 86
Narine Sumina 63.4 87 Falls der Fingerprint richtig ist, kann die Abfrage bestätigt werden. Nun wird man noch nach seinem Passwort gefragt werden und man sollte am Server eingeloggt sein.
wikibot 1.1 88
89 {{html wiki="true"}}
90 <a name='OpenSSHKey'></a>
91 {{/html}}
92
93
Narine Sumina 63.5 94 == 1.2. SSH-Verbindgung ohne Passwort (OpenSSH Konfiguration) ==
wikibot 1.1 95
Ana Villalobos González 69.1 96 Mit der OpenSSH Konfigurationsdateien lassen sich unter anderem Aliase für SSH Hosts anlegen und Optionen setzen. Mehr Informationen unter https://www.ssh.com/ssh/config/
wikibot 1.1 97
Aysegül Omus 76.1 98 Falls die OpenSSH Konfigurationsdatei noch nicht vorhanden ist, kann man diese einfach mittouch ~~/.ssh/config
Narine Sumina 63.5 99
100 erstellen. Danach öffnet man die Konfigurationsdatei (config) mit einem Texteditor z.B. vi oder vim im Terminal.
101
Aysegül Omus 76.1 102
Narine Sumina 63.5 103 (% class="box" %)
Aysegül Omus 62.1 104 (((
Aysegül Omus 76.1 105 vim ~~/.ssh/config
Aysegül Omus 62.1 106 )))
wikibot 1.1 107
Ana Villalobos González 69.1 108 Ein Beispiel Hosteintrag sieht wie folgt aus:
Narine Sumina 63.5 109
Ana Villalobos González 69.1 110 [[image:1677665498294-467.png]]
wikibot 1.1 111
Narine Sumina 63.6 112
Ana Villalobos González 69.1 113 Um eine SSH-Verbindgung ohne Passwort zur Lxhalle auszubauen, braucht man eine Konfigurationsdatei wie unten
114
115 [[image:1677665518714-502.png]]
116
117
Aysegül Omus 61.1 118 == 1.3. SSH Key ==
wikibot 1.1 119
Aysegül Omus 61.1 120 === 1.3.1. Schlüsselpaar generieren (Private und Public) ===
wikibot 1.1 121
122 Zum Generieren eines SSH Keys folgendes Befehl ausführen.
123
Narine Sumina 65.3 124 (% class="box" %)
125 (((
126 ssh-keygen -t rsa -b 4096
127 )))
wikibot 1.1 128
Aysegül Omus 74.1 129 – b steht für die Anzahl der Bits, womit die Länge des Schlüssels bestimmt werden kann.
wikibot 1.1 130
Aysegül Omus 74.1 131 – t steht für den Typen des Schlüssels.
wikibot 1.1 132
Ana Villalobos González 69.1 133
wikibot 1.1 134 Wenn Sie das angeben werden Sie nach einem Pfad nachgefragt wo das generierte Key hinterlegt werden soll.
135
Ana Villalobos González 69.1 136 {{code language="none"}}
137 $> ssh-keygen -t rsa -b 4096
wikibot 1.1 138 > Generating public/private rsa key pair.
139 > Enter file in which to save the key (/home/"$USER"/.ssh/id_rsa): <path_to_directory_to_store_key>
140 > Enter passphrase (empty for no passphrase):
141 > Enter same passphrase again:
142 > Your identification has been saved in <path>
143 > Your public key has been saved in <path>
144 > The key fingerprint is:
145 > SHA256:LtcxHv0vIgzbV/udUgBLQQ8ayBl10DzwLP0LtUC97mQ <username>@<hostname>
146 > The key's randomart image is:
147 > +---[RSA 2048]----+
148 > | ..==**o |
149 > | + O*o. |
150 > | o.=+o. |
151 > | .o+o. |
152 > | S +.oo. |
153 > | ..o +.Eo. |
154 > | . o=o +oo. |
155 > | o. + ooo.o|
156 > | o ..++|
157 > +----[SHA256]-----+
Ana Villalobos González 69.1 158 {{/code}}
wikibot 1.1 159
Aysegül Omus 61.1 160 === 1.3.2. Öffentlichen Schlüssel auf Server übertragen ===
wikibot 1.1 161
Ana Villalobos González 69.1 162 Der öffentlicher Schlüssel muss auf den Server übertragen werden.I.d.R. kann man dies einfach über //ssh-copy-id// erledigen.
wikibot 1.1 163
Ana Villalobos González 69.1 164 {{code language="none"}}
Aysegül Omus 87.1 165 $> ssh-copy-id CIT-username@hostname
Ana Villalobos González 69.1 166 /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: <path_to_directory_where_key_is_stored>
167 /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
168 /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
169 username@hostname password:
170
171 Number of key(s) added: 1
172
173 Now try logging into the machine, with: "ssh 'username@hostname'"
174 and check to make sure that only the key(s) you wanted were added.
175 {{/code}}
176
wikibot 1.1 177 Jetzt sollte der Key auf dem Server als authorisierter Key installiert worden sein und ein Login mit
Narine Sumina 65.4 178
179 (% class="box" %)
180 (((
Aysegül Omus 76.1 181 ssh -i PfadZumKeyfile username@hostname
Narine Sumina 65.4 182 )))
wikibot 1.1 183
184 möglich sein. Alternativ kann man das Identityfile wie oben spezifiziert in der SSH-Configuration angeben und sich mit //ssh alias// verbinden.
185
Aysegül Omus 61.1 186 === 1.3.3. SSH-Keygen Manpages ===
wikibot 1.1 187
188 Wenn man folgenden Befehl im Terminal ausführt, erfährt man mehr über SSH-Keygen
189
Ana Villalobos González 70.1 190 {{code language="none"}}
191 $> ssh-keygen man
Narine Sumina 65.4 192
wikibot 1.1 193 usage: ssh-keygen [-q] [-b bits] [-C comment] [-f output_keyfile] [-m format]
194 [-t dsa | ecdsa | ecdsa-sk | ed25519 | ed25519-sk | rsa]
195 [-N new_passphrase] [-O option] [-w provider]
196 ssh-keygen -p [-f keyfile] [-m format] [-N new_passphrase]
197 [-P old_passphrase]
198 ssh-keygen -i [-f input_keyfile] [-m key_format]
199 ssh-keygen -e [-f input_keyfile] [-m key_format]
200 ssh-keygen -y [-f input_keyfile]
201 ssh-keygen -c [-C comment] [-f keyfile] [-P passphrase]
202 ssh-keygen -l [-v] [-E fingerprint_hash] [-f input_keyfile]
203 ssh-keygen -B [-f input_keyfile]
204 ssh-keygen -D pkcs11
205 ssh-keygen -F hostname [-lv] [-f known_hosts_file]
206 ssh-keygen -H [-f known_hosts_file]
207 ssh-keygen -K [-w provider]
208 ssh-keygen -R hostname [-f known_hosts_file]
209 ssh-keygen -r hostname [-g] [-f input_keyfile]
210 ssh-keygen -M generate [-O option] output_file
211 ssh-keygen -M screen [-f input_file] [-O option] output_file
212 ssh-keygen -I certificate_identity -s ca_key [-hU] [-D pkcs11_provider]
213 [-n principals] [-O option] [-V validity_interval]
214 [-z serial_number] file ...
215 ssh-keygen -L [-f input_keyfile]
216 ssh-keygen -A [-f prefix_path]
217 ssh-keygen -k -f krl_file [-u] [-s ca_public] [-z version_number]
218 file ...
219 ssh-keygen -Q -f krl_file file ...
220 ssh-keygen -Y find-principals -s signature_file -f allowed_signers_file
221 ssh-keygen -Y check-novalidate -n namespace -s signature_file
222 ssh-keygen -Y sign -f key_file -n namespace file ...
223 ssh-keygen -Y verify -f allowed_signers_file -I signer_identity
Ana Villalobos González 70.1 224 -n namespace -s signature_file [-r revocation_file]
225 {{/code}}
wikibot 1.1 226
Aysegül Omus 61.1 227 == 1.4. Filetransfer mit SFTP ==
wikibot 1.1 228
229 Das Secure File Transfer Protocol (SFTP) kann genutzt werden um Daten zu oder von einem Remote-System zu übertragen.
230
Ana Villalobos González 70.1 231 {{code language="none"}}
232 $> sftp
wikibot 1.1 233 usage: sftp [-46aCfpqrv] [-B buffer_size] [-b batchfile] [-c cipher]
234 [-D sftp_server_path] [-F ssh_config] [-i identity_file]
235 [-J destination] [-l limit] [-o ssh_option] [-P port]
236 [-R num_requests] [-S program] [-s subsystem | sftp_server]
237 destination
Ana Villalobos González 70.1 238 {{/code}}
wikibot 1.1 239
Ana Villalobos González 70.1 240 Dazu kann man einfach das mit der OpenSSH -Implementierung mitgelieferte sftp Tool nutzen. Dazu einfach in das Terminal/ Powershell sftp eingeben. Die Parameter sind analog zum ssh Befehl, nur das manche Flags fehlen, wie zB X11-Forwarding. Man kann auch die in der SSH-Config definierten Hosts nutzen.
wikibot 1.1 241
242 z.B. also:
243
Narine Sumina 65.4 244 (% class="box" %)
245 (((
Aysegül Omus 87.1 246 $> sftp CIT-username@lxhalle.in.tum.de
Narine Sumina 65.4 247 )))
wikibot 1.1 248
249 Hier kann man nun interaktive Befehle nutzen um zu den gewüschten Dateien/ Ort im Dateisystem zu navigieren (z.B: ls, cd). Hier kann man nun mit //get/put// Dateien bzw Ordner(das Flag -r angeben, damit der Ordner rekursiv übertragen wird) herunter- bzw. hochladen.
250
Ana Villalobos González 72.1 251 Mehr zum SFTP-Tool der OpenSSH-Implementierung findet man im [[Manual>>https://man.openbsd.org/sftp]].
wikibot 1.1 252
253 ----
254
Aysegül Omus 61.1 255 == 1.5. X11 Forwarding ==
wikibot 1.1 256
257 Unter den meisten Linux Systemen dient das [[X Windows System>>https://de.wikipedia.org/wiki/X_Window_System]] der Darstellung einer grafischen Oberfläche. Die aktuelle Version ist X Version 11 kurz X11. Mit X11 Forwarding kann man nun auf einem Remote-System eine Anwendung starten und die grafische Darstellung an einen lokalen X11-Server übertragen.
258
259 Um X11 Forwarding nutzen zu können, muss man nur beim ssh-Befehl das X11 Forwarding Flag setzen (also einfach ein -X hinzufügen). Alternativ kann man X11 Forwarding auch in der SSH-Config aktivieren.
260
261 Auf den meisten Linuxsystemen mit grafischer Oberfläche sollte ein X11 Server von Werk aus mitgeliefert sein, sonst muss man diesen aus den Paketquellen nachinstallieren.(zB pacman -S xorg oder apt install xorg)
262
263 Unter Mac benötigt man seit Mac OS X 10.5 zusätzliche Bibliotheken. Näheres dazu auf der Apple Seite: [[Informationen zu X11 für Mac>>https://support.apple.com/de-de/HT201341]].
264
265 Unter Windows benötigt man ebenso einen X11 Server. Dazu bietet es sich unter Windows 10 an, das Linux Subsystem für Windows.(Einrichtung siehe weiter unten im Text). In diesem Linux funktioniert es nun wie unter Linux nativ. Einfach das entsprechende xorg Paket installieren und den xorg-Server starten.
266
Ulug Varnali 84.1 267 = 2. Remote Desktop =
268
269 [[image:Screenshot (28)ed.png]]
270
Aysegül Omus 87.1 271 Als computer **lxhalle.in.tum.de **eingeben und **connect** klicken.
Ulug Varnali 84.1 272
273 [[image:Screenshot (29)ed.png]]
274
Aysegül Omus 87.1 275 **Yes** klicken.
Ulug Varnali 84.1 276
277 [[image:30ed.png]]
278
Aysegül Omus 87.1 279 CIT-Kennung und Passwort eingeben, **OK** klicken.
Ulug Varnali 84.1 280
281 [[image:Screenshot (31)ed.png]]
282
283
wikibot 1.1 284 {{html wiki="true"}}
285 <a name='Putty'></a>
286 {{/html}}
287
Ulug Varnali 84.1 288 = 3. Linux Subsystem für Windows 10 =
wikibot 1.1 289
290 Auf Windows 10 kann man auch ein Linux Subsystem installieren, dass sich in den Windows Kernel und das Windows Dateisystem integriert. Es ist ein vollständiges Linux, dass allerdings im Windows Kernel läuft.
291
292 {{html wiki="true"}}
293 <a name='LinuxSubInstallation'></a>
294 {{/html}}
295
Ulug Varnali 84.1 296 == 3.1. Installation ==
wikibot 1.1 297
Ana Villalobos González 70.1 298 Mit Windows-Logo-Taste + X oder rechts klick auf die Windowsflagge das Direktlinkmenü öffnen und dort die Windows PowerShell (Administrator öffnen):
wikibot 1.1 299
300 [[image:linux00.png||width="1000"]]
301
Aysegül Omus 61.1 302
wikibot 1.1 303 Die Benutzerkontensteuerung wird nun nach Administratorberechtigungen fragen:
304
305 [[image:linux01.png||width="1000"]]
306
307
308
Ana Villalobos González 70.1 309 {{code language="none"}}
310 Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
311 {{/code}}
312
313 eingeben und ausführen. Falls das Feature nicht gefunden wird, ist das System vermutlich nicht auf dem aktuellsten Stand und sollte aktualisiert werden.
314
wikibot 1.1 315 [[image:linux02.png||width="1000"]]
316
317 [[image:linux03.png||width="1000"]]
318
Aysegül Omus 61.1 319
wikibot 1.1 320 Nach Abschluss der Feature Aktivierung den Rechner neustarten.
321
322 [[image:linux04.png||width="1000"]]
323
324
Aysegül Omus 61.1 325 Nach Neustart des Rechners den **Microsoft Store **öffnen (z.B.: Startmenü öffnen und nach Microsoft Store suchen).
326
wikibot 1.1 327 [[image:linux05.png||width="1000"]]
328
Aysegül Omus 61.1 329
wikibot 1.1 330 Im Microsoft Store nun nach Ubuntu suchen. Alternativ existeren OpenSUSE Leap, SUSE Linux Enterprise Server, Debian und Kali Subsysteme für Windows, die auch verwendet werden können und über den Microsoft Store installiert werden können.
331
332 [[image:linux06.png||width="1000"]]
333
Aysegül Omus 87.1 334
335
wikibot 1.1 336 Dann auf Herunterladen klicken, um das gewählte Subsystem zu installieren.
337
338 [[image:linux07.png||width="1000"]]
339
Ana Villalobos González 70.1 340
Aysegül Omus 87.1 341 Nach Abschluss der Installation das Subsystem starten (Kann man auch über das Startmenü machen z.B. einfach nach Ubuntu suchen).
wikibot 1.1 342
343 [[image:linux08.png||width="1000"]]
344
Aysegül Omus 61.1 345
346
wikibot 1.1 347 Beim ersten Start wird nun das Subsystem eingerichtet. Dies wird einige Zeit in Anspruch nehmen.
348
349 [[image:linux09.png||width="1000"]]
350
Aysegül Omus 61.1 351
352
wikibot 1.1 353 Um die Einrichtung abzuschließen, wird noch nach einem Nutzernamen und Passwort für das Linux Subsystem gefragt. Hier können Sie freiwählen und sollten ein sicheres Passwort wählen.
354
355 [[image:linux10.png||width="1000"]]
356
357
358
359 {{html wiki="true"}}
360 <a name='LinuxSubKonfiguration'></a>
361 {{/html}}
362
Ulug Varnali 84.1 363 == 3.2. Konfiguration ==
wikibot 1.1 364
Aysegül Omus 61.1 365 OpenSSH kann nun wie unter Linux verwendet werden.
wikibot 1.1 366
367 [[image:linux11.png||width="1000"]]
368
369 [[image:linux12.png||width="1000"]]
370
371 [[image:linux13.png||width="1000"]]