 Dann freue ich mich, dass wir uns zur Zahl euch heute hier eingefunden haben, das ist am nächsten Vortrag. Er selbst sagt von sich, wir treiben fortgeschrittener IT-Magie und administriert das Thema, die sich keiner zu hacken traut. In seinem Vortrag will er uns ein bisschen was über SSH zeigen und wie man das effizient nutzt. Herzlichen Applaus für Leirat. Dankeschön. Schönen Nachmittag. Herzlich willkommen. Das ist Talk 3 von 4Talks und Plus Workshop, den ich an diesem Event halten darf. Freue mich, dass ihr zur Zahl euch gekommen seid. Danke für das Vertrauen. Wir befinden uns immer noch auf der GPN20. Mein Name ist Leirat. Die Slides findet ihr nachher auf meiner Homepage als auch im Fahrplan. Das heißt, ihr braucht jetzt nicht hektisch mitschreiben. Könnte alles in gemütlich und zu Hause nachlesen. Bevor wir zum eigentlichen Thema kommen, nochmals mein Aufruf. Bitte helft mir, dass das nicht nochmal passiert. Ich habe 4Talks und einen Workshop eingereicht und die wunderbaren Menschen von der GPN haben alles angenommen. Da konnte ich dann auch nicht nein sagen, es war ein ziemlicher Aufwand. Also, ich glaube, ich bin knapp noch dreistellig bei den Slides. Hat mir aber auch Spaß gemacht, aber trotzdem bitte, bitte, bitte, Reichtalks ein. Es kann ja nicht sein, dass ich der Einzige bin, der über der Themen hat, über die er reden möchte. Vor allem, wenn es nicht weiße alte Männer sind, meldet euch Reichtalks ein, wenn ihr Unterstützung braucht. Wenn ihr Feedback braucht. Wenn ihr, ich bin mir nicht so, wie formuliere ich einen CFP, so, dass er genommen wird, etc., pp. Ich helfe euch gerne, sprecht mit anderen Sprecherinnen und Sprecher. Die helfen euch sicherlich auch gerne, redet mit den Hexen, redet mit anderen Entitäten aus dem CCC-Umfeld. Es gibt ganz, ganz viele Menschen, die euch gerne helfen, wenn es um Talk-Einreichungen geht und Slide-Präsentationen. Und wie mache ich eine Präsentation und hab ich nicht mit dem Timing richtig und so weiter. Man hilft euch, Mensch hilft euch. Weil vorhin schon die Frage kam bei der Vorbereitung, wie bekomme ich denn das alles auf eine Slide drauf? Ich hab mir aus der BESCH-Spezifikation die Backslash-Notation ein bisschen für die Slides angewöhnt. Das heißt, in den Slides, wenn ich ein LS-A-L-T vom Slash-Temp Verzeichnis mache, dann schreibe ich das auf den Slides meistens dann mit Backslashes, damit es einfach schöner zum Lesen ist und schöner auf das Slide drauf passt. Man kann es dann aber eben oder ihr könnt das dann eben alles als ganz normal in eine Zeile schreiben. Der Talk nennt sich besser lieben mit SSH. Wenn ihr schon langjährige Erfahrung mit SSH habt, ich sehe da ein paar Verdächtige in der ersten Reihe, die das auf die das eventuell zutreffen könnte. Und dann werdet ihr hier nicht viel Neues lernen. Ich sag's jetzt mal gleich ganz offen und direkt. Das ist ein Talk, den ich auch wieder primär an Einsteigerinnen und Einsteiger richte. Menschen, die vielleicht schon einmal einen SSH-Kommando eingegeben haben, also SSH, irgendwas hinten dran, aber nicht genau wissen, was sie da tun, beziehungsweise dieses Kommando immer wieder, immer öfter, immer gleich mit Copy und Paste eingegeben haben und das einfach mühsam ist. Dieser Talk kam auch aus meiner bisschen Verzweiflung heraus, in meinem beruflichen Umfeld. Ich habe Kollegen aus der Windows-Administration, Kundinnen und Kunden, die einen Windows-Bagground haben, jetzt auch mit Linux konfrontiert werden. Und ich muss ihnen dann in Videokonferenzen, wie es heute letzten zweieinhalb Jahre notwendig war, zusehen, wie sie mit spitzen Fingern zweizeilige SSH-Kommandos eingeben, um irgendetwas zu erreichen. Was bei einem Mal okay ist, ab dem fünften Mal wird es dann enervierend und lästig. Man hat gedacht, ich mache deinen Talk mit ein paar Basistips und Tricks, die eigentlich generell anwendbar sind und die euch das Leben mit SSH in der täglichen Verwendung erleichtern können. Wenn wir mal so die Erwartungshaltung, die klärt haben und ihr wisst, was jetzt hier in dem Talk kommt, wie immer, also gerade bei meinen Commander-Cellent-Talks, Zwischenfragen und sinnvolle Zwischenrufe werden mit Mannerschnitten belohnt. Die sind vegan, enthalten Nüsse. Und wer eine Grandawasserallergie hat, muss auch aufpassen. Die sind leider ein bisschen beschwurbelt, aber ansonsten super. Mein wunderbarer Herr Rold hat dann die Aufgabe, diese zu verteilen. Wir werden sie nicht werfen. Das führt nur zu Zert-Einsätzen. Das ist keine gute Idee. Gut, ich glaube, damit habe ich jetzt alle, ich glaube, so Schnitten haben wir geklärt, melden, okay, gut. Du hilfst mir ein bisschen, weil ich mit den Scheinwerfern nicht sehe, ein bisschen schlecht, wenn es Fragen gibt, irgendwie bemerkbar machen, das kriegen wir hin. Gut, SSH, schon mal gesehen, so prinzipiell, also die drei Buchstaben auf der linken Seite. Ich verbinde mich auf eine entfernte Maschine von der Commander-Cele aus. Wer statt SSH noch Tellen nicht schreibt und dafür keinen Allias eingerichtet hat, sprecht nache, mit mir, wir müssen reden. Und ja, es ist noch, ich habe noch Systeme gesehen in den letzten Jahren. Prinzipiell die Sündtags, ihr kennt sie wahrscheinlich auch schon hier. Es ist SSH, also der Befehl SSH, Benutzernahme, et und dann die entfernte Maschine, zu der ich mich verbinden möchte. Wenn ich das gemacht habe, ich habe ein bisschen Demo, habe ich vorbereitet, wenn ich mein Fenster für die Eingabe und vor allem meine Maus, da ist meine Maus, meine Maus finde SSH, guten Morgen, so SSH, Laira, et. Ah, ja super. Mein Laptop hat eine deutsche Tastatur, meine externe Tastatur ist eine USN-Geschä. Ich muss immer hin und her. Bussepe, ja. Ja, wenn man seinen eigenen Namen nicht mehr schreiben kann. So, also das ist so der klassische Befehl, den wir eingeben. Dann fragt der Server nach dem Passwort. Eins, zwei, drei, vier. Und dann bin ich auf meinem externen Server verbunden. Ist recht schön, ist recht einfach. Funktioniert, wenn die Namen, die involvierten Namen kurz und knackig singt, ist recht gut. Hat man nicht viel Probleme, kann man auch ab und an eingeben. Aber was ist, wenn der Name nicht mehr so einfach ist? Also, ich habe einen Kunden, der benennt seine Server alle nach nach den Göttern aus der Cthulhu-Methologie. Also, die Cthust ist schon abgerieben. Mir hat nicht so praktisch. Und wenn dann die Passwörter vielleicht auch noch in einer Company-Passwortrichtlinie sind, wird das relativ mühsam, immer alles einzutippen und braucht auch lange. Und wenn man dann auch noch SCP zum Datenübertragen verwendet, wird es einfach unpraktisch. Mag man nicht. Das heißt, und das habe ich vergessen zu fragen. Da gibt es jetzt nicht für alle Mannerschnitten, also für generelle Fragen, um das gleich. Wer darf denn hier Systeme administrieren? Palliativ oder aktiv? Also, okay. Dankeschön. Wer verbricht den Code, der auf diesen Systemen läuft? Ah, sehr schön. Zielpublikum, grüß euch. Also, ich postuliere jetzt einfach mal, so wie in der IT, haben prinzipiell eine Neigung dazu, Dinge für uns zu vereinfachen. Natürlich sagen wir uns am Schiff, dass wir vier Stunden gebraucht haben, auch wenn wir nur zwei gebraucht haben, haben wir bei Star Trek gelernt. Aber prinzipiell, wir wollen uns das Leben vereinfachen. Und darum geht es in meiner Session. Wie kann ich mir mein Leben, wie kann ich euer Leben vielleicht ein bisschen schöner machen im Umgang mit SSH? Dafür gibt es, wer sie noch nicht kennt, die SSH-Config. Die Sündtags oben besagt, ich kann einen Mann, Abstand 5, Abstand SSH-Config eingeben und bekommen die Dokumentation zu diesem Konfigurationspfeil für den SSH Kleint. Gibt es mehrere Konfigurationspfeils, es gibt die systemweite Konfiguration im ETC-SSH-Verzeichnis. Ich kann die Userkonfiguration angeben in meinem Home-Verzeichnis. Das ist diese geschwungene Zilde, für die die es noch nicht kennen. Ich begrüße hier auch die Windows-Administratoren und Administratoren in diesem Tag. Wenn ihr das SSH-Verzeichnis nicht findet, probiert es noch mit einem Punkt davor. Und dann schlussendlich die Kommando-Zeilen-Optionen. Das heißt, es zieht zuerst die systemweite Konfiguration, dann zieht die Konfiguration, die ich in meiner lokalen benutzerenden Benutzerkonfiguration habe. Und schlussendlich kann ich all das noch einmal overruhen, indem ich eine Kommando-Zeilen-Option angebe. Womit wir uns heute in diesem Tag beschäftigen und was ich euch ein bisschen zeigen möchte, wieso habe ich da nicht auf die Seite gedrückt, ist auch egal. Ist das, ist die Zilde Punkt SSH-Konfig. Das heißt, das Konfigfeil, der, die, das Konfigfeil. Ich bin Österreicher, ich darf das. Das Konfigurationsfeil, die Konfigurationsdatei, damit ich es auf Deutsch auch noch rausbringe, Dankeschön, die Konfigurationsdatei in unserem Home-Verzeichnis, im Unterverzeichnis Punkt SSH. Das heißt, der Punkt davor heißt, diese Datei sehe ich nur, wenn ich einen LS-A zum Beispiel verwendet, weil es versteckt ist. Das hat historische Gründe. Da gibt es ganz tolle YouTube-Videos dazu, warum das damals die Entwickler von UNIX so gemacht haben, beziehungsweise ist es eigentlich ein unerwarteter Seiteneffekt. Super tolles Video, sprecht mich nachher drauf an. Ich habe den Link irgendwo in meinem Twitter-Feed. In dieser Punkt SSH-Konfig kann ich jetzt ganz, ganz viele unterschiedliche Konfigurationen reinschreiben und ich möchte euch da jetzt ein paar Optionen zeigen, die, wie gesagt, euch das Leben hoffentlich erleichtern können. Das Erste ist das sogenannte Host-Nem-Alias, sprich, ich kann den Host-Namen, den ich erreichen möchte, durch ein Kürzel, durch einen Allias, durch einen Alternativ-Namen ersetzen. Das heißt, ich brauche nicht immer SSH-Server.example.com ein Tippen, sondern ich kann einfach Demo schreiben, zum Beispiel, oder GPN oder Popokate-Battle oder was halt immer für euch leicht zu tippen ist. Ich kann aber nicht nur einen verwenden, ich kann jetzt nicht nur einen Allias definieren, sondern ich kann mehrere, also mir geht es so, ich habe manchmal, manchmal denke ich an den Server unter einem Namen, manchmal denke ich an den Server unter einem anderen Namen. Das heißt, ich kann mir jetzt nicht nur einen Allias definieren, sondern noch mehrere, weil ich bin dumm, aber ich kann mir das Leben einfach machen, kann mich selbst überlisten. Das heißt, ich kann den Server SSH-Industrie-Server.example.com unter dem Kürzel Demo, D1 oder Popokate-Battle eben, wie gesagt, erreichen, das ist so mein Standardname, wenn ich ihren Beispiel bringen möchte. Schauen wir mal die erste Verkürzung. Die zweite Verkürzung, bzw. wenn so ein Server, den ich erreichen möchte, in dem alten, also nicht in der Nicht-Cyber-Net-Dies-Docker-Welt, sondern da, wo wir noch unsere Server gepflegt und gestreichelt und lieb gehabt haben, wo wir auch mehrere Dienste auf einem Server hatten, dann hatten diese Server oder haben diese Server auch unterschiedliche Namen. Das heißt, ich habe den Server dann SMTP genannt, oder EIME, oder WWW, oder DB2, oder MySQL, oder was auch immer. Und anstatt jetzt hier mehrere Einträge zu haben, kann ich jetzt die Prozent-Hass-Syntax verwenden. Das heißt, er nimmt mit den Allias, zum Beispiel SMTV, nicht SMTV, das ist ein wunderbar netter Mensch aus dem Karsumfeld, aber SMTP, er nimmt, das SSH nimmt dann eben den Begriff, den Allias SMTP und hängt ihn an das Example.com vorne dran und kann ich mir so auch wieder eine Tipparbeit ersparen. Für diese Demo hier, für diese Präsentation hier, werde ich das jetzt in der von Notation nicht verwenden, aber ich wollte euch gezeigt haben, damit könnte das auch machen. Neben dem Hostname, das zweite, was ich ja vorhin angemuss, ist SSH Benutzername et Servername. Das zweite, was wir jetzt noch abkürzen können, ist eben der Newsername. Wie kann ich mir ersparen, den Newsernamen einzugeben, den Benutzernamen einzugeben? Ich kann den einfach ebenfalls in der SSH-Konfig mit angeben. Das heißt, mit diesen drei Zeilen erspare ich mir mal schon ganz viel Tipparbeit. Wie schaut das aus? Ich habe mir hoffentlich was vorbereitet, erholt. Ja, der Einwurf, da gibt es hier diese wunderbare Person, kriegt eine Packung Schnitten. Wenn der Benutzername auf meinem lokalen System, von dem ich jetzt das SSH wegmache, gleich ist mit den Benutzernamen auf dem entfernten System, dann brauche ich den natürlich nicht mit angeben. Ich gebe es jetzt hier einfach immer explizit mit an, weil meistens bei meinen Kunden, das dann unterschiedlich ist, da habe ich dann irgendwie eine Personalnummer und oder sonst irgendwas, und das meibt dann nicht zu meinen lokalen Namen. Da hinten war dann auch noch eine Frage. Bringst du da mal kurz das Mikro hin? Kann ich auch einen Benutzernamen für alle Server definieren, quasi als Catch All? Ja, du kannst den Catch All auch definieren, da kommen wir dann gleich noch dazu. Warte noch, geduldet dich noch ein bisschen, ja, ja, ja, ja. Brauchst mich nicht immer fragen. Ich brauche noch ein paar für meinen letzten Talk heute, aber ansonsten herfangen. Das heißt, ich elitiere jetzt mal kurz mein Config-File, also ich hatte noch keines, ich lege mir jetzt eins an. Ich sag, mein Hostname, SSHServer.example.com soll unter den zwei Alternativenamen Demo und Bestion erreichbar sein. Das Bestion brauche ich dann später für eine zweite Demo. Und ich möchte automatisch mit dem Benutzernamen Leiratort angemeldet werden. Wie komme ich jetzt aus dem WI wieder raus? Da gab es doch jetzt einen Exploit erst, wie man auch nutzen kann. Nee, der hat mir schon wieder das Keyboard umgedreht, das Saftsack. So, das heißt, ich habe mir jetzt mein mein Config-File, machen wir das nochmal, useless, lose, use of cat. Nein, ich pute jetzt nicht in Emacs. So, jetzt. Wäre langweilig, wenn gleich alles funktioniert hätte. So, das heißt, ich habe jetzt ein SSH-Config und ich kann jetzt theoretisch, wenn mir die Demo-Göter gewogen sind, einfach sagen SSH-Demo und er fragt mich nach dem Passwort der entfernten Maschine. Und wenn ich das richtig eingebe, bin ich verbunden. Hurra! Erste Demo hat funktioniert, wunderbar. So, ich habe da was vorbereitet, aber das baue ich zum Glück nicht. Das Zweite und die, die schon ein bisschen mehr von SSH Ahnung haben, wissen, was jetzt kommt. Das Zweite, was wir uns jetzt einrichten können, ein bisschen, das ist jetzt schon ganz praktisch, aber es ist noch immer mühsam, weil ich muss noch immer mein Passwort eingeben. Ich habe jetzt hier für die Demo ein relativ einfaches Passwort gewählt, damit ich, weil sonst, ich kann, wenn mir jemand zusieht, kann ich Passwort da nicht korrekt eintippen. Und das ist in so einer Situation eher blöd. Daher habe ich ein sehr einfaches genommen. Und nein, die Server sind nicht erreichbar. Das heißt, ich möchte jetzt auch irgendwie dieses Passwort eingeben loswerden oder zumindest nur einmal eingeben, weil einmal sollte man es schon eingeben, so ganz Passwort les. Also, wenn jemand Talk mit SSH ein Passwort les, also fei dazu oder so irgendwie machen möchte nächstes Jahr, bitte mach das, ich sitze drinnen und höre euch zu. Finde ich spannend. Ich mach's nicht. Oder? Nein, nein, nein, nein, nein. Das heißt, wir sprechen hier jetzt über SSH Public Key Authentication. Das heißt, wir generieren uns ein Public Private Key Pärchen, mit dem ich mich gegenüber dem Server authentifizieren kann. Damit brauche ich dann nur noch, brauche ich dann eigentlich kein, Ziel sollte sein, ich brauche kein Passwort mehr eingeben. Das Ganze nutzt die sogenannte Asymmetric Cryptography. Das heißt, ich generiere mir einen öffentlichen und einen privaten Schlüssel. Und wie die Namen schon implizieren, öffentlich heißt, den kann ich kopieren, den kann ich wohin spielen, den kann ich auf meine Homepage stellen, wenn mir Fahrt ist, den kann ich auf Twitter stellen. Oder auf Mastodon, Entschuldigung. Mit dem Private Key sollte ich das nicht machen. Wenn ich das mit dem Private Key mache, dann habe ich ein bisschen ein Problem. Kommen wir jetzt auch noch gleich dazu. Das Ganze funktioniert dann so. Wie gesagt, die Technologie dahinter könnte nachlesen. Der Server und der Client machen sich die Kommunikation aufgrund dieser Schlüssel aus und verhandeln sich die Kommunikation untereinander. Und schlussendlich bin ich angemeldet. Was ich dazu brauche ist, ich muss mir lokal auf meinem Rechner. Und der Punkt ist, das macht man, das macht Menschen immer lokal auf einem Rechner, der mir selber oder euch selber gehört. Das macht man nicht auf einem Cloud Server, das macht man nicht auf einem Hotelrechner in der Lobby, sondern das macht man auf dem persönlichen Gerät. Wenn ihr ganz Paronie seid, kauft euch einen Raspberry Pi, generiert euch das, schmeißt den Pi nachher weg. Nein, das ist nicht sustainable, spendet den dann für ein Projekt. Und über die SSD reden wir dann noch getrennt. Da kommt aus der Nummer, komme ich jetzt nicht mehr raus. Der Punkt ist, ihr generiert euch den Public und den Private Key auf der Maschine, die euch gehört. Und den Public Key kopiert ihr dann auf den Server, damit der Server den kennt. Und damit können sich klein und server etwas ausmachen und euch automatisch anmelden. Für diese Public-Private-Key-Generierung bietet uns SSH unter Linux, BSD und allem, was Unix ähnlich ist, das SSH-Key-Gang-Kommando. Das ist so das, was ich üblicherweise verwende. Das ist das, was die coolen Kits heute auch verwenden wollen. Wenn ihr so wie ich im Legacy Enterprise palliatives Systemadministrationsumfeld unterwegs seid, dann kann das vielleicht nicht funktionieren. Das verwendet hier der erste Parameter. Sagt uns das gleich die CURV25519, also ED25519, eine elliptische Kurve für das asymmetische Kryptosystem. Das ältere Systeme sagen unter Umständen nicht unterstützen, da müsste dann auf die altehergebrachten RSAs zurückgreifen. Wenn ihr aber mit IoT kleinen Geräten, Smart Cuts etc. zu tun habt, wollt ihr auf jeden Fall ED25519 verwenden. Der Vorteil hier bei Demos ist auch, die ED25519 Keys passen auf eines Slide drauf, ohne dass man Augenfliehmann bekommt. Die Option A mit 420 ist die Anzahl der Runden, die er rechnet, wenn er den Key generiert. Eine höhere Anzahl von Runden macht es schwerer bei einer Brutforsattacke, wenn ein Angreifer den Private Key erhalten hat. Hier eine Brutforsattacke zu fahren ist optional. Ich habe es mir einfach angemündet, mit anzugeben. Dritte Parameter, minus F, wie feil, gibt eben an, unter welchen Namen das Ganze generiert werden soll. In meinem Fall eben auch wieder ins Punkt SSH-Verzeichnis hinein. Und bei mir heißt der Demo ED25519. Das ist meine persönliche Nomenklatur für das Ganze. Ihr findet für eure Dateien hoffentlich eine eigene und habt eine eigene Nomenklatur, wie ihr Dinge benennt. Was ich euch sehr ans Herz legen würde, ist für jedes Schlüsselpärchen, das ihr euch generiert, immer auch einen Kommentar mit dem großen C mit anzugeben. Damit ihr auch später noch eine Chance habt, die Schlüssel auseinander zu kennen, beziehungsweise, wenn ihr mal den öffentlichen Schlüssel auf ein Paar Server kopiert habt, ist es einfach auch für die anderen Administratoren auf dem Server nett zu wissen, was ist das für ein Schlüssel, wem gehört denn der und wem kann ich denn da kontaktieren. Also gerade, wo ich jetzt auch wieder bei mehreren Kunden unterwegs bin, habe dann halt meine Namen, Firmennamen, E-Mail-Adresse in dem Kommentatorial stehen, dass die Admins wissen, dass der Schlüssel von mir ist und nicht von einem zufälligen Gast, der da eine Schwach, eine Lücke irgendwo gefunden hat. So, auch das sollte, ich bin wieder lokal, das ist schön. Ich wollte... Ich will Ihnen am Server. Danke, mitgedacht, sehr schön. So, aber jetzt bin ich am Kleinen. Ich habe gewusst, warum ich die Namen so wähle. Man kann, muss ich das Leben nicht unbedingt schwerer machen, als es ist. Das ist genau das, was ich euch vorhin auf das Slide gezeigt habe. Und wenn ich das ausführe, fragt er mich nach der Passphrase für den Schlüssel. Es sollte keinen Schlüssel ohne Passphrase geben. Hier gibt es einen Interrupt, bitte. Ja, gerne. Entschuldige. Deine Namenskonvention heißt so wie das Zielsystem, das du erreichen möchtest? Ja, also ich habe normalerweise Kundenname, Zielsystem, also bei mir ist es normalerweise länger, aber ja. Also Zielsystem und dann Schlüssel, RSA, ED 259, was auch immer. Hier auch für Demonstrationszwecke habe ich es einfach noch mal hineingeschrieben, damit es klarer ist, was es ist. Ich frage deswegen, wenn manche, vielleicht mache ich es falsches, gehe ja auch mit meinem Public Key auf verschiedene Zielsysteme und wenn ich nicht jedes Mal einen eigenen Key generieren wüsste, das ist vielleicht best practice für jedes Zielsystem. Ja, komme ich auch gleich dazu. Danke. Er fragt mich dann nach der Passphrase, wie gesagt, danke für mich auch bitte immer und unterbrechen ist kein Thema. Passphrase, es sollte keinen Schlüssel ohne Passphrase geben. Schauen wir mal, ob ich das fehlerfrei zusammenbringe. Dann rechnete und denkt kurz nach und dann sagt er mir, ja, hier, du hast hier jetzt deinen Private Key und deinen Public Key ins Verzeichnispunkt SSH geschrieben. Den Public Key erkennt man daran, dass hinten noch Punkt POP für Public dran steht. Ich habe einen Fingerprint, wenn ich dann Fingerprint Verifikation haben möchte und die Run, das Random Art Image, damit ich auch, wenn mir das Server das auch anbietet, dass ich kann, meine SSH Server konfigurieren, dass man dieses Bild auch anzeigt und kann daran erkennen, haben sich die Keys geändert oder nicht. Die Idee dahinter ist, dass Menschen musste besser erkennen können und gleich. Und wenn man sich das Bild ein paar Mal gesehen hat, einfach schneller sieht, da hat sich der Key geändert, da stimmt was nicht. Da war eine Frage dahinten. Zum Thema Passphrase. Ja. Ist ja schön, wie ich mir einen Schlüssel generiere und dann nicht mehr das Passwort im Server eingeben muss. Ja, komme ich gleich dazu. Wir kriegen auch noch die Passphrase weg. Aber es sollte keinen Private Key ohne Passphrase geben. Punkt. OK. Wait for it. Wait for it. So, das heißt, ich habe mir das Ding jetzt erstellt. Ich habe Backup Slides, falls mal die Live-Demo nicht funktioniert. Im Output, er fragt mich nach der Passphrase, das haben wir schon gehabt. Ich habe den Output, ich habe meinen Private Key, das ist der ohne Pub und ich habe meinen Public Key, das ist der mit Pub. Den kann ich mir jetzt auch anschauen. Und SSH Demo Pub. Machen wir das nochmal nach oben, damit es ein bisschen hübscher wird. Das ist mein Public Key. Das Schöne am ED255-19 ist der kurzknackige, kompakt, passt schön auf den Bildschirm. Kann man auch schön in die Zwischenablage kopieren, was ich jetzt auch gleich tue. Erinnert mich daran, dass ich das getan habe. Den brauche ich dann in ein paar Minuten. Dasselbe kann ich natürlich auch mit dem Private Key machen. Das mache ich jetzt hier in der Demo für euch. Das macht ihr bitte im richtigen Leben nie. Das ist euer Privater Key. Den hat außer euch niemand zu sehen. Sieht so aus. Das ist also ein base64 encoded binary File. Und es steht auch schön groß Private Key drinnen. Dieses File, dieses Datei sollte euren Rechnern nie verlassen. Wenn ihr irgendwie mit Git habt, arbeitet und ihr habt so ein File, solltet ihr das vielleicht im Git Ignore stehen haben, dass das nicht auf den Server wandert. Fehlungen meines. Muss nicht sein, aber ist so Best Practice prinzipiell. Wie gesagt, der Public Key muss auf den Server. Der Private Key bleibt bei euch. Ich ja, das wiederhole ich noch ein paar Mal, weil sorgt immer wieder für Verwirrung. Prinzipiell, diese Public Private Keys, die kosten euch nichts. Also der Aufwand, jetzt eine neuen Public Key zu generieren, ist vernachlässigbar. Das heißt, ihr braucht die nicht reusing. Wenn ihr mit mehreren Kunden zusammenarbeit, generiert euch für jeden Kunden ein eigenes Public Keypärchen. Wenn ihr mit GitHub und GitLab kommuniziert, dann habt bitte unterschiedliche Keypärchen für GitHub und GitLab. Und wenn, weiß ich, was es noch an neuem Zeug gibt, das ich gar nicht kenne, es kostet euch nichts. Der Laptop läuft schon, er verbraucht jetzt nicht ein Wesen, nicht relevant mehr Strom, nur weil er euch ein Keypärchen generiert, ist vernachlässigbar. Das heißt, das Zeug kostet euch nichts, aus ein bisschen Überlegung, Namensschema damit ihr den noch auseinanderhalten könnt. Bitte, bitte nicht, bitte, bitte nicht, alles einen Key für alles verwenden. Wenn es euch passiert, und mir ist das natürlich noch nie passiert, aber ich kenne jemanden, dem das schon passiert ist. Wenn euer Private Key auf einem GitHub Repository oder FDP Server oder sonst irgendwo landet, wenn das nur einen Service, einen Dienst betrifft, dann muss man halt bei dem Dienst ein neues Keypärchen generieren, hochladen und alles ist wieder gut. Wenn ich dann zu meinen 15 Kunden gehen muss und sagen muss, ja, ich habe hier einen Security Breach, den ich jetzt wählen muss, weil ich mein privates GitHub Repository falsch behandelt habe, ist das schlecht. Bitte, bitte, bitte eigene Keypärchen für unterschiedliche Dienste. Bitte, wenn es eine Frage ist, dann warte aufs Mikro. Okay, eine Frage, best practice betreffend, gilt es auch für unterschiedliche Kleintrechner, die du hast? Oder würdest du sagen, da nehmst du dann das gleiche Pärchen für alle Rechner, die du besitzt, von denen aus zu dich verbinden ist? Das ist eine gute Frage. Radio, Radio, Rewound, man, ja, das kannst du machen. Also ich habe, ich habe, ich habe Freunde im IT-Sec Umfeld, die das genauso fahren. Die haben auch wirklich für jedes, für jedes Kleinsystem unterschiedliche Keys und wenn der eine Laptop wegkommt, dann sind halt nur die Keys komprimiert, aber nicht alles. Also das hängt von deinem Betreuungszenario ab, das hängt von deinem, von deinem Risiko Assessment ab. Das kann man jetzt nicht übers Knie brechen. Wenn ich jetzt angestellt werde und ich hätte einen Stand Laptop und einen Stand PC und einen Firmen Laptop, da hätte ich wahrscheinlich die gleichen Keys. Wenn ich von einem Firmenrechner, von einem Privatrechner greife ich nicht auf Kundensysteme zu. Ich, your mileage may vary, hängt von deinem Szenario ab, ist ein valide Szenario, dass man auch für jedes, für jedes Endgerät unterschiedliche Schlüssel hat. Macht halt den Aufwand deutlich größer. Ja. Wie ändert sich diese Policy, wenn man statt so was eben um hier auf einer Smartcard oder sowas hat? Detto, das musst du für dich entscheiden, hängt von deinem Risikoanalyse ab, hängt von deinen Security-Vorgaben, von den Kunden etc. Smartcard und SSH und FIDO und SSH, finde ich super spannend. Magst du nicht nächstes Jahr einen Vortrag dazu machen? Ich helfe dir auch. Also, wir kommen schon in den Q&A-Teil. Super, sieh mal schon soweit. Zeigt doch noch kurz die Permissions von den Dateien im Punkt. Letztes Aufverzeichnis, das halte ich auch verwichtig. Nein, das ist nicht Windows. Das ist Mint. Worauf, worauf, worauf, worauf die Frage, also worauf der Hinweis hinzielt ist, dass, wenn ihr euch jetzt da den Private Key anschaut, das ist der, das ist in der zweiten Zelle, das kann ich jetzt da nicht mal, so geht's. Ist der da hier? Dann seht ihr hier, da ist wirklich nur der Owner ReadWrite. Wenn das nicht so aussieht bei euch, dann funktioniert das alles nicht. Gibt's aber, kann man auch googeln und, und, und, aber das ist so der klassische Fehler, wenn die Berechtigungen auf dieser Datei nicht korrekt sind, dann funktioniert das ganze System leider nicht. Tut's? So. Wo, wo, wo? Ah, da. Wie ist das mit dem eigenen Keyperchenwendung ClusterHas mit gleichartigen Servern jetzt, www.1vs4, nimmst du da auch jeweils einen eigenen Keyperchen? Oder? Das besprechen wir, nachdem ich zwei Chunks hatte, bitte. Danke. Nein, seriously. Ein bisschen, bisschen Stoff. Wann haben wir angefangen im Viertel? Was, eine halbe Stunde? Nein, bisschen, bisschen Stoff habe ich noch, sowas gerne dann im Privatgespräch, gerne, aber, aber prinzipiell Pro-Ziels, also ich hab, auch wenn ich jetzt, Cluster ist ja auch wieder so eine Frage, wie definierst du Cluster? Ich habe Pro-Zielhost, also, nein, pro Kunde normalerweise. Also es gibt dann Kunden, die sind noch ein bisschen paranoider, aber auch hier wieder, your mileage may vary, kannst du. Es gibt keine, mach es genau so, und dann sind alle glücklich, das ist immer sehr, alles sehr abhängig und sehr, unterschiedlich von Kunde zu Kunde, von System zu System, von Risiko zu Risiko. Also es gibt dann auch Menschen, die dann diesen Private Key dann noch mit einer CA zertifizieren und diese Keys überhaupt nur für eine Viertelstunde gültig machen und dann automatisch neu generieren und so weiter. Da gibt es schon online ganz tolle Vorträge. Und wenn dazu jemand was machen will, würde ich das wirklich empfehlen. Das ist super spannend, das Thema aber hoch, kann hochkomplex werden und auch die du dich sehr schnell, sehr schnell aus allen Systemen raussperren. Anyways, wir wollen uns eigentlich jetzt einmal nur das Leben ein bisschen leichter machen und haben gesagt, der Public Key muss irgendwie auf den Server. Da waren wir stehen geblieben, glaube ich, wenn ich den Fahrrad nicht ganz verloren habe. Das heißt, wie bringe ich das Zeug jetzt auf den Server? Die einfachste Methode ist, ich verwende SSH Copy ID, das Kommando, das SSH Copy ID Kommando hatte die älteren Zusäherinnen und Zusäher werden sich erinnern, hatte eine Zeit lang diesen wunderbaren Back, dass es einfach ohne Rückzufragen den Private Key auf den Server kopiert hat. Das sollte in den neueren Versionen jetzt mittlerweile behoben sein. Das heißt, man kann das Tool jetzt auch durchaus wieder empfehlen, dass das auch das so macht, wie man sich das vorstellt. Und wie ihr seht, das Schöne an den Alliasen, an den Alternativnamen, die wir vorhin eingerichtet haben, die funktionieren bei allen SSH Kommandos. Das heißt, das funktioniert, ich kann jetzt auch bei SSH Copy ID einfach sagen Demo, und der verbindet sich automatisch mit dem SSH Server.example.com. Ich probiere wieder mal eine kurze Demo. Die Dinge habe ich mir vorbereitet, die muss ich nicht tippen. Das war noch hübsch. Da meldet sich jetzt SSH Copy ID und sagt, hey, ich kopiere jetzt den Key auf den Server und ich komme aber nicht drauf, na, na, nicht, weil wir das Ganze noch nicht eingerichtet haben. Ich bräuchte das Passwort vom Server, das sollte ich noch zusammenbringen. Hurra, er hat einen Key hinzugefügt und er sagt mir dann auch gleich, was ich tun soll. Try Logging into the Machine with SSH Demo. Mach ich doch gleich. Ja, warum? Weil er nicht weiß, welchen Key er verwenden soll. Ich habe es immer noch nicht gesagt. Das heißt, ich muss ihm jetzt sagen, hey, verbinde dich zum Demo und verwende den Key. Und jetzt fragt er mich, die aufmerksamen Leserinnen und Leser werden zerkennen. Er fragt mich jetzt nicht mehr nach dem Passwort für den Server, sondern jetzt fragt er mich nach der Passphrase von meinem Private Key. Das war der Punkt, auf den du vorhin hinwolltest. Gebe ich das ein. Ah, mein Hurra, ich bin am Server verbunden. Ich habe mich jetzt nicht mehr mit meinem Passwort angemeldet, sondern mit meinem Private Key für den ich die Passphrase eingeben musste. Okay, haben wir nicht wirklich was gewonnen, ne? Ah, komme ich gleich dazu. Also, wie gesagt, SSH Copy ID, dann kann ich mal den Public Key auf den Server kopieren. Ich kann das Ganze auch einfach manuell kopieren, Zwischenablage, etc. PP funktioniert alles, bitte. Ich habe eine Frage und zwar, wenn ich jetzt dieses SSH Copy ID verwendet und einen Server so konfiguriert habe, dass ich mich nicht mit einem Passwort einloggen kann, was mache ich dann, welchen neuen Maschine habe? Ah, dann solltest du deine Inbetriebnahmeprozedur überdenken. Also bei SSH, bei Cloud Servern kannst du das nochmal, kannst du dann die Public Keys gleich beim Cloud INI zum Beispiel mitangeben. Also, wenn du dir jetzt irgendwo auf irgendeiner Plattform was klickst, sagst du eigentlich, nimm den Public Key und der wird dann automatisch gleich am Server eingespielt und dann funktioniert das. Andere Optionen habe ich auch schon mal einen Talk dazu gemacht. Du hast den vorher so konfiguriert, dass du Benutzernahme Passwort erlaubt hast, aber mit einem zweiten Faktor wie zum Beispiel TOTP, dann geht das auch. Aber üblicherweise, wenn du jetzt so Cloud provisioniertest, selber nimmst, da gibst du gleich den Public Key mit an und dann brauchst du das Copy nicht machen. So, danke, war guter Einwurf. Baue ich in die nächste Version dieses Talks ein. Dankeschön. Dann erst mal mit Tellnet einloggen. Nein, du lochst dich nicht vorher mit Tellnet ein und kopierst den Key rauf. Hallo! Kann jemand das? Nein, alles klar. So, das Erste, was ihr gesehen habt, ich musste, dass den Private Key mit angeben, damit er wusste, womit er sich anmelden soll. Auch dafür gibt es natürlich einen SSH-Config-Eintrag. Das heißt, ich kann mit Preferred Authentication sagen, ich möchte Public Key und dann auch noch gleich das Identity-File mit angeben. Das schaut dann, gesamt, schaut dann meine SSH-Konfig-Sau aus. Ich hab meine Erleise, ich hab meinen Hostnamen, ich hab meinen Benutzernamen, die Preferred Authentication und das Identity-File. So, ich bin am Server, das heißt, ich will wieder auf den Kleint. Wir haben, nein, kennst du das auch, das so? Ich hab irgendwo eine LS und dann drückt man 25-mal LS um dann drei Buchstaben nicht eingeben zu müssen. Ja, Control-R, ja, natürlich. Mit FZF bitte, ja, Integration, das ist super diesen Jahr. Und da kommen jetzt dazu die Preferred Authentication und mein Identity-File. Bitte, geht doch, wenn man will. Und jetzt sollte es eigentlich wirklich nur noch sein. Jetzt hab ich ihm gesagt, ich möchte Public-Private-Key Authentication verwenden, nehmen dieses ID-File und damit sollte er mich jetzt nur noch nach der Passphrase des ID-Files fragen, was er auch tut. Und ich bin am Server. So, du hast vorhin richtig herausgestrichen, da haben wir jetzt noch nicht viel gewonnen, ne? Weil ich muss jetzt statt, ich hab prinzipiell eine bessere Security, weil dieses Public-Private-Key Authentication deutlich sicherer ist als das plain Passwort, aber vom Komfort her, und um den geht es uns ja, vom Komfort her haben wir jetzt noch nicht viel gewonnen. Ich red ganz, natürlich muss man dafür die Passwort Authentication am Server abdrehen. Ich red aber jetzt wirklich nicht, ich red hier wirklich auf einer kleinen Seite. Wir als Administratorinnen und Administratoren und Entwicklerinnen wollen uns das Leben einfacher machen, dass das Server-Konfiguration wie ein eigener Talk, wenn du nächstes Jahr einen machen möchtest, ich finde das super und sitze in der ersten Reihe und hör dir zu. Er kennt das Muster? Gut, damit wird das Thema please enter the passphrase for the key lösen können, gibt es einen sogenannten SSH-Agent. Der SNH-Agent ist ein Programm, das läuft auf meiner Maschine, auf meinem Laptop, auf meinem PC und speichert mir den Private Key in Memory. So, wenn das ... So luft mich jetzt jemand am Deck an. Wenn das für jemanden ein Security-Problem ist, dann setzt man das nicht ein. Das müsst ihr für euch selbst entscheiden, ob das für euch okay ist, dass die Keys im Speicher liegen und kommuniziert über lokale Sockets mit dem SSH-Kleint. Wenn ihr ein GUI verwendet, einen GNOME Desktop oder MacOS oder sonst irgendwas, weiß ich jetzt nicht, wie das bei KDE heißt, die haben meistens dann schon so einen SSH-Agent auch im GUI eingebaut. Das heißt, ihr braucht das gar nicht mehr großartig konfigurieren und vor allem werden dann eure Private Keys automatisch mit der Betriebssystemanmeldung freigeschaltet. Das ist superkomfortabel, sprecht mit eurer Security-Abteilung, falls ihr ein Problem damit habt. Das ist eine Sicherheitsanalyse, die ihr für euch selber machen müsst. Für die Verwaltung des SSH-Agent, für sie hinzufügen und entfernen, wenn ihr das nicht im GUI drinnen habt, sondern alles nur von der Kommando-Zeile ausmacht, gibt es das SSH-Add-Commando, mit dem ich Private Keys zum SSH-Agent hinzufügen kann und auch wieder aus dem Memory herausholen kann. Das heißt, ich muss meinem SSH-Agent einmal sagen, lad diesen Private Key und sobald ich das einmal gemacht habe, steht der in Memory und ich muss nur beim Hineinladen die Pass-Fress angeben und dann nicht mehr. Das ist an und für sich super praktisch. Nein, das war jetzt falsch. Jetzt bin ich da in der VM drinnen, danke. Das heißt, ich sage, nein, das ist das falsche, so habe ich das nicht vorbereitet. Gut, jetzt wird es lustig, ich muss tippen. Den Agent zu starten, wenn das die GUI nicht mitmacht, würde Teile des Publikums verunsichern. Wenn euch das interessiert, kommt nachher zu mir. Ich zeige es euch gerne, ich habe es jetzt ganz bewusst ausgespart, weil ich wollte es wirklich ganz, ganz end-userinnen end-userfreundlich machen. Ich wollte meinen Demo Key und auch hier will ich den Private Key und er fragt mich jetzt nach der Pass-Fress. Jetzt sagt er mir, okay, Identität hinzugefügt und wenn ich jetzt SSH minus L sage, ja, das ist genau das, warum ich mir eigentlich alles immer vorbereite, weil dann habe ich diese Tippfehler nicht drinnen. Dann gehe ich jetzt hier, okay, ich habe einen Private Key in meinem SSH Agent drinnen und wenn ich jetzt wieder SSH Demo mache, yes, kein Passwort. Das war das, worauf du hinaus wolltest mit deiner Frage. Wie kann das sein? Einmal muss ich es eingeben, das finde ich auch in Ordnung. Einfach aus Security gründen, dass nicht einfach irgendjemand dann kommen kann und sagen kann. Und ab dann brauche ich das nicht mehr eingeben. Herrlich. Das Schöne an dem Ganzen ist, ich bekomme da noch einen Benefit mit, und zwar bekomme ich mit Remote Autocompletion. Was heißt das? Ich kann jetzt nicht nur SSH machen, sondern es gibt auch dieses wunderbare SCP-Kommando, mit dem ich jetzt zum Beispiel meinen Demo, in dem ich jetzt sage, okay, ich möchte von meiner Server, der heißt eben im Kürzel Demo, aus dem Home-Lider-Verzeichnis, und ich drücke hier immer nur TAP, die Server TXT zum Beispiel, und weiß ich keine Ahnung, was das ist. Das heißt, dadurch, dass er sich automatisch am Zielsystem anmelden kann, kann er mir eine TAP-Kompletion machen. Und ich brauche mir nicht überlegen, ich muss mir nicht merken, okay, ich muss das file aus Opt, X, Y und Z, sonst irgendwas, und ich kann einfach TAP, TAP, TAP, durch das Ding durchnavigieren, erspart einem enge Menge Tipperei. Das ist so ein kleiner Nebeneffekt, den man durch die Public-Private-Key-Authentication mitbekommt. Das Ganze, und das ist das Schöne, und deswegen versuche ich das auch immer für die Windows-Welt aufzubrechen, das kann ich unter Windows auch machen. Das ist jetzt nicht nur auf den, ja, ich zeige jetzt gleich einen Windows-Screenshot her, das ist Content Warning. Kann man da mal ein Mikro haben? Ich hätte noch ein CW einbauen müssen, das tut mir leid. Der Kram ist aber nicht mehr notwendig, ab Windows 10 sind die ganzen Tools alle mit dabei in der PowerShell. Ja, das heißt, du machst nächstes Jahr ein Talk dazu? Lass mich mal so sagen, ich habe es hier mit Enterprise-Kunden zu tun, wo PowerShell noch immer so ... Lass, ich bin eh schon ein bisschen zeitgepresst. Ist es wichtig oder können wir es hinten anhängen? Ja, sowieso. Wenn wir schon über Putti reden, dass Mensch die aktuelle Version einsetzt und nicht die Version, die die Firma vor fünf Jahren freigegeben hat und mittlerweile fünf Sicherheitslöcher hat. Ja, aktuelle Version bitte. Das Schöne bei Putti ist, ich habe bei Putti auch ein Putti Gen dabei, das ist das Tool, das mir die Keys generiert. Ich habe den Putti Agent, das ist mein SSH Agent, und ich habe dann Putti, das ist mein SSH Kleint. Das heißt, ich habe Putti Gen, das generiert mir den SSH Key. Ich habe auch hier wieder in diesem Fall einen ED25519 Key generiert. Für das Kopieren auf den Server brauche ich das, was mir Putti Gen da oben in das Public Keyfeld hineinschreibt. Das ist das, was ich hier so blau markiert habe. Wenn man hier Safe Public Key macht, dann speichert er das nämlich in einem Putti-Proprietärenformat ab und das kann ich dann nicht mit einem Open SSH Server verwenden. Das ist so der eine Trick, den man hier bedenken muss. Ansonsten läuft es genau gleich wie unter Linux ab. Dann habe ich den Putti Agent, den hau ich mir am besten irgendwo in ein Windows Auto Start, wie man das macht, erklärt uns dann der Kollege nächstes Jahr in dem Talk. Beziehungsweise, wenn das eh schon automatisch in der PowerShell dabei ist, geht das noch viel eleganter. Ich kann hier dann in Putti Agent sagen, füge einen Key hinzu, das ist genau dieses SSH Art, etwas, was wir im Linux hatten. Und wenn ich dann in Putti eine Verbindung einrichte, dann muss ich unter Connections SSH Out da ganz hinunter scrollen, und da kann ich dann in einem Feld Private Key, den Private Key hinterlegen, mit dem ich mich anwälten müsste. Und dann ist es genau gleich, wie ich es jetzt vorhin euch in unter Linux in der Kommando-Zeile gezeigt habe. Das können andere SSH-Kleins unter Windows auch. Ich wurde in den 90er Jahren mit Windows sozialisiert. Ich bin noch immer ein, wenn ich schon unter Windows arbeiten muss, ein Putti-Me-User. Aber auf den PowerShell Talk freu ich mich wirklich, dann lerne ich auch wieder mal etwas Neues. Super. Ganz grandios. Gibt es schon einen CFP für nächstes Jahr? Wenn nicht, kann das mal schnell wieder anlegen. Ja, Putti kann auch Tell nicht, aber auch das wollen wir nicht. Nein. Es ist faszinierend, wie viele Menschen hier noch alte Solaris, DNS-Server in irgendwelchen Zwischenbögen liegen haben. Ich bin beeindruckt. Gut, wir sind mittlerweile schon ziemlich, ich bin schon ein bisschen pressed for time, lasst mich noch ein paar Dinge erwähnen, damit ich euch das Leben noch ein bisschen einfacher machen kann. Die Punkt SSH-Config ist, die einen sagen picky und mühsam, die anderen sagen, es ist eigentlich total geil. Das Problem, die Herausforderung ist, von der SSH-Config wird der erste Parameter, der gefunden wird, genommen. Das heißt, das, und da war auch die Frage vorhin, dann kann ich ein catch all machen, ja, das willst du dann am Ende des Files haben, mit einem Sterndall, also ein Asterix, wie die Amerikaner zu sagen, und je spezifischer das für eine Maschine ist, desto weiter oben willst du es haben, weil er nimmt das erste, was er gefunden hat. Du kannst fünf Hostseinträge haben, es zählt das erste, was er gefunden hat, den ersten User-Eintrag zum Beispiel, den er gefunden hat, den Verwendter. Wenn ich dann für den selben Server noch mal einen User-Antrag weiter unten hab, funktioniert nicht. Ich hab da ein Beispiel vorbereitet. Ich hab eine Sterndall.testexample.com für alle Server, Entschuldigung, für alle Server in der Domäne soll das Identify-Test-ID verwendet werden. Für den einen Server in der Produktion, für den Unicorn-Server, möchte ich eben das Pink Fluffy-ID-File verwenden. Für den Unicorn-Server darfst du euch dann später bedanken. Und für alle anderen Server in der Prot-Example-Domäne soll das Identify-Prot-ID verwendet werden. Hostspezifisch zuerst, und dann immer generischer werden, immer generischer werden. Die Frage nach dem Catch-All, um die auch noch zu beantworten, Host-Stern wäre dann dein Catch-All. Das schaut bei mir so aus, dass ich sage, Identity is only yes, das ist der Eintrag, den man drinnen haben möchte. Weil damit sage ich dem SSH-Klein, schick dem Server nur die Identities, die für den Server konfiguriert sind. Weil wenn er das nicht macht, probiert der SSH-Klein mit allen Identities, die er kennt, gegen den Server zu fahren. Also wenn ich fünf Identity-Files in meinem SSH-Agent hab, dann probier das einfach mit allen und dann kriegst du irgendwann too many authentication failures for user error zurück. Also das heißt, das Identities only sollte ja eigentlich nach Möglichkeit drinnen haben. A Seuse Roaming No ist noch ein Überbleibsel von einem alten CVE, wo man das haben musste, das war zwischen 5.4 und 7.1, also ja, ich bin schon etwas älter. Und compression, yes, ja, ich muss mit Server in den USA Westküste arbeiten, da will man das haben. Das Zweite, was man mit der SSH-Dekonf machen kann, ist, ich kann mehrere von diesen Konfigurationsfeld haben. Ich kann im Punkt SSH-Verzeichnis ein Konf.D-Verzeichnis haben und kann mich hier zum Beispiel Konfigurationen pro Kunde hinterlegen, was super praktisch ist. Selbe Syntax, selbe Regeln, alles gleich sortiert nach dem Feilnamen S7 mit SG sortiert. Letzt, ich hoffe, letzter Punkt, wenn ich meine, das leidst richtig im Kopf hab, ist das Thema Bastion oder Jump-Post. Wer ein bisschen im Enterprise-Umfeld unterwegs ist, kennt das. Ich kann meinen Zielserver nicht direkt erreichen. Das heißt, ich muss über einen sogenannten Jump-Post drüber gehen, um meinen Zielserver zu erreichen und kann eben nicht direkt durchhüpfen. Manuell sieht das so aus. Ich mach ein SSH zu meinem Bastion-Server, zu meinem Jump-Post. Der sagt, hallo, servus, grüß dich. Da hab ich mir das alles eingerichtet, dass ich automatisch angemeldet werde, etc. Ich sag dort dann SSH Target.local, das ist halt die Maschine im lokalen Netz, die ich von außen nicht erreiche. Der fragt mich dann nach Benutzennahmenpasswort und dann bin ich dort auch angemeldet. So funktioniert das Prinzip. Das geht ab, das wäre der manuelle Weg. Das ist der mühsame Weg. Das ist der, den wir nicht wollen eigentlich. Was ich hier machen kann ist, ich kann explizit einen Jump-Post definieren, das heißt den aktuellen Open-SSH-Klein-Versionen, kann ich sagen, SSH-J. Mein Jump-Post ist der Bastion, das ist der Allias, den ich mir vorher schon in meiner Konfig angelegt habe. Und mein Target ist das Target.local. Dazu muss ich Target.local nicht auf meiner lokalen Maschine auflösen können, als DNS-Hosen. Super praktisch. Das Ganze geht dann natürlich noch eleganter. Ich kann mir, das ist jetzt ein bisschen, ah, es geht eher aufzulesen. Ich kann mir halt meinen Bastion-Server definieren, ich kann mir meinen Internal-Server definieren und kann beim Internal-Server sagen, der Proxy-Jump-Post für diesen Server ist der Bastion. Setz das da, dritte Zeile, zweite Zeile. Und damit definiere ich jetzt, wenn ich sage SSH-Internal, dann hüpft er über den Bastion-Server auf meinen Internal-Server hin. Das heißt, ich muss nur noch angeben dass das da Internal und die Sache ist erledigt. Er fragt mich noch immer nach Benutzernahmen, Passwort und wie man das fixt, komme ich gleich dazu. Nein, komm ich gleich dazu. Also ich habe jetzt ganz bewusst gesagt, der Target.local fragt mich immer noch nach Benutzernahmen und Passwort. Für die, die noch ein bisschen ältere Systeme haben, kann man das dann auch noch mit ein Proxy-Komand umgeben. Das macht im Prinzip dasselbe, das ist das Verwenden. Das ist nur, wie gesagt, fallback. Was ihr nicht verwenden wollt, ist Agent Forwarding. Das wird mittlerweile als Sicherheitslücke angesehen. Das wollt ihr nicht haben. Was beim Bastion, was bei dieser Konfiguration das elegant ist, wenn ich auf meinem Target.local genauso meinen Private Key hinterlegt habe, also im authenticated keys, authorized keys, im authorized keys hinterlegt habe, dann kann mein lokaler Klein das durchreichen, und zwar auf eine sichere Methode und nicht über das Agent Forwarding. Das heißt, das was ich euch gezeigt habe, Public Private Key, funktioniert über diesen Jump Host auch. Wenn ich meinen Target.local entsprechend konfiguriert habe, also einmal den Public Key dorthin kopiert habe in das authorized keys File. Wie gesagt, Agent Forwarding, bitte nach Möglichkeiten nicht verwenden. Es gibt dann noch ein paar andere Tools, aber nachdem wir jetzt schon eigentlich ziemlich am Ende der Zeit sind, sage ich eher, ich beantworte noch ein paar Fragen, wenn es die gibt. Passt das für euch? Nur ein kleiner Einwurf, wenn man SSH hat, was so alt ist, das Stich wenig kann, dann kann man stattdessen noch ein Netcat auf den Besten. Ich habe einen Talk von 2019, wo ich fünf Alternativen mit Vollbacks bis zu SSH, Versionswerb. Wir reden hier von Heilbricks aktuellen Systemen, aber ja. Wir hatten vorher das mit dem ConfD, das ist glaube ich nicht ein Standard, aber wir haben das mit Include noch drin. Das hängt jetzt dann von deiner, das war, Entschuldigung, ich hier übte jetzt gerade ein bisschen das hier, das kommt auf deine Distribution an. Mein Mint hat es zum Beispiel dabei, mein Fedora hat es auch dabei, es kommt darauf an. Im Zweifelsfall mit Include und diesem Fahrt in euer SSH Conf, ein Include mit diesem Fahrtname dazu und dann tut das auch. Wir haben auch im Google ganz schnell, wenn es nicht out of the box funktionieren sollte. Ja, und die Tab completion kann es bei mir nicht, leider. Andere Fragen, da hinten. Wir haben doch keine Zeit. Du hattest ein Beispiel für die Bastion und den Target-Local, den gleichen Publici. Ist das Gute so zu machen oder sollte man unterschiedliche werden mit dem Thema? Da sprichst du mit deiner Security-Abteilung dazu. Die geben dir normalerweise die Keys. Ich habe es jetzt hier fürs Demo den gleichen verwendet. Einfach, ich wollte nicht, mit dem Demos ist immer das Problem, wie komplex machst du sie? Mir ging es ums Verständnis nicht um, bitte. Das ist jetzt vielleicht eine leicht religiöse Frage. Aber wieso wird häufig, als Direktor der Security-Bridge gewertet, wenn wir beispielsweise in den Private Key in einen Repo hochladen oder irgendwie anders nach außen kommen, wenn ja doch trotzdem immer noch IS verschlüsselt ist, gegeben einer sinnvollen Passphrase? Weil das durfte dann noch theoretisch gesehen eigentlich scheißegal sein. In dem Moment, wo du Zugriff auf den Private Key hast, ist es nur noch eine Zeit- und Geldfrage, bis du die Passphrase hast. Du hast genug Geld, um dir ein paar Tesla Instanzen bei AWS zu klicken und eine Brut vorstufaren. Ich glaube nicht, dass so viele AWS Instanzen existieren. Ich meine halt einfach, das ist doch irgendwie eine... Es ist schon ein bisschen Obscurity, weil sagen wir es mal so, wenn... Entschuldige, dass ich dir da ins Wort falle. Nein, weil die Standard-Practice ist bei Public Private Key Cryptography. Der Private Key ist Private. Das ist das eine Ding. Die Public Private Key, PKI, Zertifikatsgeschichte, es ist alles offen bis auf den Private Key. Du willst den Private Key im Zweifelswaffe, eine Smart-Cut haben, etc. Wenn du es in ein Github-Repository hast, ist das ein Security Prejud. Ja, man kann darüber diskutieren. Wenn du es argumentieren kannst gegenüber deinem Security Team, fein bei mir, ich sehe es als Problem an und dann sollte man was tun und die Keys durchtauschen. Aber... Ja, ich bin alt genug. Ich streite noch, ob Amiga oder Atari besser ist und ich habe bezüglich Editorien eine Meinung, aber ansonsten... Da drüben waren da noch... Nein, die E-Max-Diskussion führen wir nach. Raus. Entschuldigung, ja, bitte. Wie ist das dann, wenn man pro Service einen eigenen Key hat, benutzt du dann eine gleiche Passphrase überall, sonst wird das ja auch sehr schnell... Nein. Aber auch das immer wieder beim Thema, ich würde wirklich gerne einen Talk mit SSR und FIDO und Hardware Tokens und sonst was innen. Das finde ich super spannend. Beim ersten Verbinden an dein Exampleserver ist mir aufgefallen, da hat überhaupt nicht diese merktwürdig, kritische Fragen geschrieben. Ja, die habe ich ganz viel ausgeteckt. Das ist auch wieder, wenn man Pech hat oder mit komischen Rechenzellen. Das halte ich auch ganz wichtig. Das cover ich normalerweise, wenn ich einen SSR Einsteiger Workshop mache. Da zeige ich das her mit. Ja, ja, ja. Also Zeit für eine Frage, dann müssen wir durch. Ja. Ich bin nachgeführt, Schwung und Fragen zu haben. Okay. Und zwar die Frage von mir wäre, gibt es eine elegante Lösung, die Konfiguration zu Skripten? Ich habe jetzt ein Netzwerk, könnte direkt auf den Host drauf oder ich sitze jetzt zu Hause und will den Shamp Host benutzen. Unterschiedliche Alleyes ist es. Okay. Einmal Zielbindestrich daheim, einmal Zielbindestrich Büro. Da gibt es was mit Plus und zusammenführen. Da gibt es was mit Plus und zusammenführen. Schau mal, Mann 5 SSH Conf. Schau mal, Mann 5 SSH Conf. Und damit glaube ich, Sie sehen mal, sind wir zeitlich am Ende. Ich bedanke mich ganz herzlich für Ihre Aufmerksamkeit. Und wenn es noch Fragen gibt, ihr findet mich. Dankeschön.