openSSH und SCP

Phlyton

Cadet 4th Year
Registriert
Feb. 2019
Beiträge
67
Also bevor ich meine Frage stelle, wollte ich nur schon mal vorausschicken, dass ich hier hauptsächlich am Lernen über Netzwerke und Remote-Wartungsthemen etc. bin. Mein folgendes Szenario ist aller Wahrscheinlichkeit nach eine Spielerei und das, was ich eig. vorhabe geht sicherlich auch einfacher/sicherer und besser. Ihr könnt gerne darauf Aufmerksam machen, ich wäre aber natürlich sehr dankbar, wenn ihr, die ihr von der Materie mehr als ich versteht, ein paar Tipps mitgeben könntet :)

Also, folgendes Szenario:

  1. Ich habe OpenSSH auf meinem Windows 10 Pro Rechner installiert. Dadurch kann ich eine sichere Verbindung zum Server herstellen und Remote-Zugriff über SSH ermöglichen.
  2. Ich habe eine Domain gekauft, um einen einfacheren Zugriff auf meinen Server zu ermöglichen, anstatt die IP-Adresse zu verwenden.
  3. Ich habe einen DynDNS-Dienst eingerichtet. Dieser Dienst verknüpft meine dynamische öffentliche IP-Adresse mit meiner Domain, sodass ich immer auf meinen Server zugreifen kann, auch wenn sich meine IP-Adresse ändert.
  4. Ich habe die Konfiguration meines SSH-Servers angepasst, um keine Passwortanmeldung zuzulassen. Stattdessen ist ausschließlich eine Public/Private Key-Paar-Authentifizierung mit Passphrase möglich. Dadurch erhöhe ich die Sicherheit meines SSH-Zugriffs erheblich.

Ich melde mich über JuicySSH auf einem Android-Gerät als Benutzer mit Admin Rechten (mein "normaler Windows Account") per ssh an. Der Private Key ist in der Identity in der Juicy app hinterlegt.

So, ich habe das hauptsächlich zum Them SSH-Server-Client, openSSH Windows, Linux etc gemacht, aber es funktioniert nunmal und ich fahre bald in den Urlaub. Jetzt meine eigentliche Frage: wie kann ich darüber jetzt eig. Dateien - ja, ich frage hier tatsächlich wie ich über die SSH Verbindung Dateien schicken kann :)
Es gibt ja SCP, nur, wie mache ich das?

  1. Ich melde mich über die CMD-Shell an, wenn die SSH-Verbindung aufgebaut wird.
  2. Ich würde es bevorzugen, eine BASH-Shell anstelle der CMD-Shell zu haben.
  3. Obwohl ich den Befehl für SCP bereits kenne, habe ich auf meinem Android-Gerät kein Terminal. Ich bin verwirrt, da ich den Unterschied zwischen der Shell und dem Terminal nicht genau verstehe.

Wie kann ich nun Dateien über meine SSH zu openSSH via dynDNS auf mein Handy in den Urlaub schieben? Oder auch zurück, direkt private cloud bilder update etc :)
 
Zuletzt bearbeitet:
Stichwort SFTP?
https://de.m.wikipedia.org/wiki/SSH_File_Transfer_Protocol

Ergänzung ()

Phlyton schrieb:
Obwohl ich den Befehl für SCP bereits kenne, habe ich auf meinem Android-Gerät kein Terminal.
Browser-->F-Droid-->Termux
Ergänzung ()

Generell noch eine Anmerkung: Man KANN das so machen und ssh mit PKI absichern und prohibit password, falls nur Du drauf zugreifen möchtest, ist es vielleicht sinnvoller, ein VPN (z.B. Wireguard) nach Hause aufzubauen und von dem Wireguard Einstiegspunkt auf den Server (insofern der bei Dir zu Hause steht) zuzugreifen.

Ich mache das halt auch so mit ssh/sftp. Habe aber noch ein paar Schritte mehr Hardening die man eher kosmetischer Natur ansehen kann.

1. PKI
2. anderer Port, irgendwo >10000
3. dedizierter User für sftp, keine Bash-Umgebung
4. anderes Home-Verzeichnis aus dem er nicht ausbrechen kann
5. angepasste /etc/hosts.allow und /etc/hosts.deny

Da ich nur mit einer Person Daten austausche und wir beim gleichen ISP sind, habe ich mir alle Subnetze von diesem herausgesucht und somit den Zugriff noch weiter beschränkt.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: madmax2010 und Phlyton
OK, ich kenne ftp natürlich, habe ehrlichgesagt nicht an ftp gedacht, wusste das nicht. ist wohl etwas in vergessenheit geraten? da lese ich mich morgen mal ein, aber da setze ich einen weiteren server auf, einen sftp server, nehme ich mal an? hatte mal einen lokalen streaming-ftp-server, da mussten aber einzelne verzeichnisse freigegeben werden.
Was ja wiederum ein punkt ist, dass der ssh zugang mit dem man sozusagen an die kronjuwelen kommt bestmöglich abgesichert werden muss
einen extra Benutzer dafür anzulegen ist eine gute Idee!
port habe ich übrigens schon geändert in der sshd_config.

2. ich verstehe die hardeningschritte und kann die denke ich ganz gut selbst implementieren, verstehe aber 4. und 5. nicht ganz - kenne diese datei zum blockieren für ip adressen, indem man sie einfach auf den localhost mappt... oder so ähnlich jedenfalls.

wireguard muss ich mir auch mal anschauen, hatte mal openvpn konfiguriert vor langer zeit...
 
Ach, ich verstehe erst jetzt, dass es sich um Windows handelt. Ja da muss man gucken, ich ging jetzt ganz selbstverständlich davon aus, dass OpenSSH auf LINUX läuft. Aber viele dieser Schritte lassen sich auch auf Windows implementieren. SFTP hat mit FTP an sich wenig gemein, SFTP baut direkt auf SSH auf und verschlüsselt die gesamte Verbindung, auch den Verbindungsaufbau.
 
  • Gefällt mir
Reaktionen: Phlyton
_anonymous0815_ schrieb:
Ach, ich verstehe erst jetzt, dass es sich um Windows handelt.
Ja, es ging tatsächlich speziell um ssh in windows umgebungen. aber jetzt verstehe ich wiederum, wieso du hosts.allow hast. soweit ich weiß gibt es soetwas in windows nicht - oder doch?
 
du begehst mehrere Denkfehler...
ja, man kann Passworte für SSH verbieten, es schadet auch nicht, aber es ist völlig falsch zu glauben, dass es die Sicherheit "erheblich erhöht"!

wenn du ein "sicheres" Passwort verwendest, dann ist das genauso sicher, bzw. sogar sicherer, weil es NICHT auf deinem Handy oder sonstwo gespeichert wird und falls doch, dann entscheidest DU wie, wo usw.

am Ende ist es so: JEDER der Zugriff auf dein Passwort/PIN/Foto für FaceID/Fingerabdruck/... für das Handy bekommt (wie auch immer), kommt an deinen privaten Key und hat damit alle Macht an sich.
oder anders gesagt: du kaufst dir einen super sicheren Tresor (das ist gut) und legst den Schlüssel dafür unter die Fußmatte, das ist weniger gut ;)

wenn man sowas macht, dann lieber gleich mit z.B. einem Yubi-Key, dann ist der private-key gar nicht zugänglich.
 
Mickey Mouse schrieb:
wenn du ein "sicheres" Passwort verwendest, dann ist das genauso sicher, bzw. sogar sicherer, weil es NICHT auf deinem Handy oder sonstwo gespeichert wird und falls doch, dann entscheidest DU wie, wo usw.
Deswegen vergibt man eine Passphrase ;-)

Mickey Mouse schrieb:
am Ende ist es so: JEDER der Zugriff auf dein Passwort/PIN/Foto für FaceID/Fingerabdruck/... für das Handy bekommt (wie auch immer), kommt an deinen privaten Key und hat damit alle Macht an sich.
Deswegen beschränkt man die Verteilung des private Keys des Users "root" und schränkt den Nutzungsumfang über die /etc/ssh/sshd_conf für einen dedizierten User ein.


Mickey Mouse schrieb:
wenn man sowas macht, dann lieber gleich mit z.B. einem Yubi-Key, dann ist der private-key gar nicht zugänglich.
Als zweiten Faktor sicher nicht schlecht, aber dann kann man auch eine Passphrase nutzen und diese im Passwortmanager aufbewahren.
Ergänzung ()

Mickey Mouse schrieb:
du begehst mehrere Denkfehler...
ja, man kann Passworte für SSH verbieten, es schadet auch nicht, aber es ist völlig falsch zu glauben, dass es die Sicherheit "erheblich erhöht"!
Nach der Logik ist ja jedes VPN unsicher, kann ich nicht nachvollziehen

EDIT: Und bitte nicht mit der Entropie kontern, die sollte bei jedem modernen OS ausreichend gegeben sein.
 
Zuletzt bearbeitet:
Mickey Mouse schrieb:
wenn du ein "sicheres" Passwort verwendest, dann ist das genauso sicher, bzw. sogar sicherer, weil es NICHT auf deinem Handy oder sonstwo gespeichert wird und falls doch, dann entscheidest DU wie, wo usw.
ssh keys, sind ja idealerweise, auch noch mal mit einem Passwort geschützt

Passwörter kann man eben abschauen, oder sonst wie abgreifen (keylogger), oder auf dem Telefon "hilft" dir die Auto Vervollständigung beim Eintippen

openssh macht eben mehrere Sachen, wenn du eine Shell offen hast dann überträgst du über die Shell, keine Datein mehr. Aber es gibt eben Programme wie scp / sftp und rsync, die dann Datein kopieren (ohne eine interaktive Shell für dich anzuzeigen)


man könnte auch, oben drauf auch noch mal, ein VPN wie Wireguard legen. das hat dann den Vorteil das der SSH Server gar nicht mehr öffentlich ist und so auch keiner versuchen kann sich mit Passwort ein zu loggen

generell muss man bei Servern sehr auf passen welche Dienste öffentlich angeboten werden da geht es nicht nur um SSH auch sonstige Server Dienste und Freigaben. Idealerweise, ist der DynDNS ein Router der alles blockt und ausschließlich der gewünschte Port also SSH (oder eben VPN), wird durch gereicht
 
  • Gefällt mir
Reaktionen: _anonymous0815_
_anonymous0815_ schrieb:
Deswegen vergibt man eine Passphrase ;-)
"allgemein" ja, ich habe aber nicht "allgemein" geschrieben, sondern mich auf den Beitrag des TE bezogen, was ihr vielleicht auch machen solltet ;)

ich kenne Jucy (Juice?) SSH nicht, aber:
"Der Private Key ist in der Identity in der Juicy app hinterlegt."
klingt jetzt weniger "vertrauenswürdig".


_anonymous0815_ schrieb:
Als zweiten Faktor sicher nicht schlecht, aber dann kann man auch eine Passphrase nutzen und diese im Passwortmanager aufbewahren.
du kennst die Funktionalität eines YubiKey (nicht der reine Fido(2), sondern 5&Co)?!?
ich vermute mal nicht...

_anonymous0815_ schrieb:
Nach der Logik ist ja jedes VPN unsicher, kann ich nicht nachvollziehen
nö, aber von der sicheren(!) Einrichtung und späteren Handling einfacher!

klar, wenn ich mich in einem reinen Unixoiden Umfeld bewege, dann hat man i.d.R. eh eine "funktionierende" SSH Infrastruktur und SCP&Co. fallen "nebenbei" mit ab.
wenn man aber mit Windows und Android (ok, das ist auch ein bisschen Unix, aber auf "übelste verstümmelt" ;) ) unterwegs ist, dann sehe ich das eben völlig anders.
besonders weil man gerade bei Android quasi immer einem "Fremdanbieter vertrauen" muss, so sehr, dass man ihm den private-key anvertraut. Wenn man sich komplett auf quelloffene Tools auf Basis von OpenSSH&Co. (da würde ich jetzt auch wireguard dazu zählen) stützen kann, dann habe ich ein besseres Gefühl. Natürlich kann auch da vieles schiefgehen, aber es gibt ja zumindest im Ansatz so etwas wie "Selbstkontrolle".

kieleich schrieb:
Passwörter kann man eben abschauen, oder sonst wie abgreifen (keylogger), oder auf dem Telefon "hilft" dir die Auto Vervollständigung beim Eintippen
auch du hast mich falsch verstanden!
der TE glaubt, dass er "besonders sicher" ist, (nur) weil er password-login disabled hat. Das ist meiner Meinung nach ein Trugschluss!
wie ich bereits gesagt habe, es schadet nicht, aber es hilft auch nicht besonders, wenn man "ordentliche" Passworte vergibt und sich dann trotzdem per PKI einlogged.

ich halte das: "kein Passwort -> automatisch sicher" für Augenwischerei und dadurch in gewisser Weise sogar für gefährlich. Und nochmal: es heißt nicht, dass es falsch ist!
 
Mickey Mouse schrieb:
"allgemein" ja, ich habe aber nicht "allgemein" geschrieben, sondern mich auf den Beitrag des TE bezogen, was ihr vielleicht auch machen solltet ;)
Ja gut, er hat es nicht erwähnt, ist richtig.

Mickey Mouse schrieb:
du kennst die Funktionalität eines YubiKey (nicht der reine Fido(2), sondern 5&Co)?!?
In meiner alten Firma nur den Fido für den zweiten Faktor. Da war sowieso "nur" Keepass und VPN Tunnel zum Kunden angesagt, obwohl wir durchaus Zugriff auf extrem sensible Kundendaten von der DACH-Region und ausgewählten Standorten weltweit hatten. Alles in allem ausbaufähig.

Mickey Mouse schrieb:
ich halte das: "kein Passwort -> automatisch sicher" für Augenwischerei
Kann man so mitgehen, habs halt etwas anders interpretiert.
 
Zuletzt bearbeitet:
Android Handys können jetzt selber eine Sftp Verbindung aufbauen ohne extra Tools. Das findet man unter eigene Dateien> Netzwerkspeicher.

Als Terminal empfehle ich ConnectBot oder TermBot. Beider unter F-Droid zu finden.
 
  • Gefällt mir
Reaktionen: Phlyton
Mickey Mouse schrieb:
der TE glaubt, dass er "besonders sicher" ist, (nur) weil er password-login disabled hat. Das ist meiner Meinung nach ein Trugschluss!
Mickey Mouse schrieb:
wenn du ein "sicheres" Passwort verwendest, dann ist das genauso sicher, bzw. sogar sicherer, weil es NICHT auf deinem Handy oder sonstwo gespeichert wird und falls doch, dann entscheidest DU wie, wo usw.
Kann diese beiden Punkte überhaupt nicht nachvollziehen. Denn erstens habe ich unter 4. oben erwähnt, dass ich eine Passphrase vergeben habe, und ich habe dazu eine gewählt, die nach gängigen regeln der sicheren Passwortvergabe erstellt wurde, Länge + Sonderzeichen. Somit habe ich doch das Beste aus beiden Welten?
_anonymous0815_ schrieb:
Ja gut, er hat es nicht erwähnt, ist richtig.
Phlyton schrieb:
Ich habe die Konfiguration meines SSH-Servers angepasst, um keine Passwortanmeldung zuzulassen. Stattdessen ist ausschließlich eine Public/Private Key-Paar-Authentifizierung mit Passphrase möglich. Dadurch erhöhe ich die Sicherheit meines SSH-Zugriffs erheblich.

Mickey Mouse schrieb:
der TE glaubt, dass er "besonders sicher" ist, (nur) weil er password-login disabled hat. Das ist meiner Meinung nach ein Trugschluss!
Nein, ich glaube besonders sicher zu sein, weil ich passwort-login disabled habe + den Key mit Passphrase geschützt habe 🤔

Mickey Mouse schrieb:
ich kenne Jucy (Juice?) SSH nicht, aber:
"Der Private Key ist in der Identity in der Juicy app hinterlegt."
klingt jetzt weniger "vertrauenswürdig".
Da gehe ich 100% mit. Hier übrigens: https://juicessh.com/

deswegen habe ich jetzt zunächst mal wie @kieleich geschrieben hat den Zugang zum Key auf dem Handy mit einem zusätzlichen Passwort geschützt ---

Mickey Mouse schrieb:
am Ende ist es so: JEDER der Zugriff auf dein Passwort/PIN/Foto für FaceID/Fingerabdruck/... für das Handy bekommt (wie auch immer), kommt an deinen privaten Key und hat damit alle Macht an sich.

Also jemand müsste dann ersteinmal das Handy entsperren, was wirklich nicht so einfach ist, ich verwende da kein einfaches muster oder nur eine 4 stellige PIN --- dann müsste er nun das Kennwort des keys finden, dann die passphrase.

gehen wir mal davon aus, dass jucyssh jetzt meine keys nicht in ihre cloud kopiert und an hacker verkauft, und gehen wir auch mal davon aus, dass es ohne key wirklich nicht möglich ist, über ssh in das system einzudringen... Ich meine, wäre das der Fall, wäre das ganze Protokoll samt PKI hinfällig, oder?

ich würde mal sagen, zum Thema wenn jemand an meine PIN/FACE ID (die ich nicht nutze ) etc. gelangt und zugang zu meinem Handy bekommt, würde ich mal vermuten, dass er mit dem handy schon alle macht an sich gerissen hat. Da könnte er heftigst identitätsdiebstahl begehen, weil viele 2Faktor-Auth. Verfahren noch immer SMS nutzen und durch zugriff auf das Email-Postfach wäre er theoretisch in der Lage, Passwörter zurückzusetzen... aber das ist jetzt ein ganz anderes THema, wollte damit nur sagen, dass ich was das Handy angeht wirklich sehr, sehr security aware bin, aus o.g. Gründen.

Ich schaue mir heute nachmittag mal das thema SFTP genauer an.


Und nocheinmal, Passphrase stand unter punkt 4 schon von anfang an, wenn ihr euch auf richtig lesen bezieht ;)
 
  • Gefällt mir
Reaktionen: _anonymous0815_
jede App die SSH unterstützen können soll wird den Key brauchen das ist unvermeidlich

am besten ist das irgend eine Open Source app da kann man zwar auch nicht blind vertrauen, daß die das nicht weiter telefonieren, aber immerhin paar mehr Augen darauf

Private Keys sollten generell nie mals kopiert werden. wenn du auf einem weiteren Gerät auch ein Key brauchst dann generiert sich dieses seinen eigenen Key und in der authorized keys schreibt man zu jedem Key dazu was das ist wo das her kommt

Wird dein Smartphone / Laptop /... geklaut wirfst du alle Keys die zu diesem Gerät gehören raus... die anderen Geräte funktionieren weiter
 
_anonymous0815_ schrieb:
Sind die besser als Termux? Kenne die noch gar nicht :)
Das sind eigentlich SSH-Clients und man kann damit Portweiterleitungen gleich für die Verbindungen speichern. Hat auch eine Schlüsselverwaltung. Es ging um SSH deswegen habe ich die empfohlen.

Für die Funktionen von termux kann man gleich ein Linux starten mit der App UserLand und den Terminal TermBot
 
  • Gefällt mir
Reaktionen: Phlyton und _anonymous0815_
Zurück
Oben