Die beste Ressource, die Sie beim Einrichten eines ssh-Dienstes auf einem Host-Computer mit Ubuntu unterstützen kann, ist OpenSSH Server . Auf diese Weise können Sie das SSH-Dateiübertragungsprotokoll (auch Secure File Transfer Protocol oder SFTP) verwenden, um von einem Client-Computer aus über SSH auf Dateien zuzugreifen, diese zu übertragen und diese zu verwalten.
Lösungsübersicht
- Unter Ubuntu können Sie eine
OpenSSH server
auf einem Host-Computer einrichten, und ein Benutzer kann dann ssh
eine Verbindung vom Client zum Host-Server herstellen, indem er nur einen Benutzernamen und ein Kennwort verwendet. Beachten Sie jedoch, dass die Authentifizierung mit öffentlichem Schlüssel empfohlen wird.
"Stellen Sie sicher, dass Sie ein sicheres Kennwort haben, bevor Sie einen SSH-Server installieren (möglicherweise möchten Sie Kennwörter ganz deaktivieren )"
- Auf dem Host erstellte administrative Benutzerkonten verfügen über Sudo-Berechtigungen, auf dem Host erstellte Standardbenutzerkonten nicht.
Installieren und konfigurieren Sie Ihren OpenSSH-Server auf dem Host
So installieren Sie einen OpenSSH-Server auf dem Host:
sudo apt-get install openssh-server
Geben Sie Ihrem Host eine statische IP-Adresse, damit Sie eine zuverlässige Verbindung herstellen können:
nm-connection-editor
Um Ihren OpenSSH-Server zu konfigurieren , "erstellen Sie zuerst eine Sicherungskopie Ihrer Datei sshd_config, indem Sie sie in Ihr Ausgangsverzeichnis kopieren, oder indem Sie eine schreibgeschützte Kopie in / etc / ssh erstellen:"
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.factory-defaults
sudo chmod a-w /etc/ssh/sshd_config.factory-defaults
"Sobald Sie Ihre sshd_config
Datei gesichert haben , können Sie Änderungen mit einem beliebigen Texteditor vornehmen, zum Beispiel:"
sudo -H gedit /etc/ssh/sshd_config
Sie müssen Ihren ssh-Dienst auf dem Host neu starten, damit diese Änderungen wirksam werden
sudo service ssh restart
Beachten Sie die folgenden Sicherheitsmaßnahmen
- Aktivieren Sie die Portweiterleitung auf Ihrem Router nicht: Wenn Ihr Router von einem Außenstehenden aufgefordert wird, eine Verbindung zu Port 22 usw. herzustellen, ist Ihr Router nur dann konform, wenn Sie die Portweiterleitung aktiviert haben
- Root-Login deaktivieren: Auskommentieren
PermitRootLogin without-password
; PermitRootLogin no
zu Hosts hinzufügen/etc/ssh/sshd_config
- Wählen Sie einen nicht standardmäßigen SSH-Port: Auskommentieren
Port 22
; Port <new-port-number>
zu Hosts hinzufügen/etc/ssh/sshd_config
- Nur lokale Verbindungen zulassen: Hinzufügen
ListenAddress 192.168.0.10
- Bestimmte Benutzer an bestimmten Ports zulassen: Hosts hinzufügen
AllowUsers <username>@<IP_address_1> <username>@<IP_address_2>
oder AllowUsers <username>@111.222.333.*
hinzufügen/etc/ssh/sshd_config
- Nur Verbindungen mit RSA-Schlüsseln (ohne Kennwort) zulassen: Fügen Sie die Inhalte der
~/.ssh/id_rsa.pub
einzelnen Clients als neue Zeile der Hosts hinzu ~/.ssh/authorized_keys
. Dann PasswordAuthentication no
zu Hosts hinzufügen/etc/ssh/sshd_config
- Langsame Angriffsversuche: Verwenden Sie ufw (unkomplizierte Firewall) auf dem Host, um eingehende Verbindungen auf 10 / Minute zu begrenzen:
sudo apt-get install ufw && sudo ufw limit OpenSSH
- Weitere Ideen finden Sie unter Sicherer SSH-Zugriff
Wenn Sie das Gefühl haben müssen, aktivieren Sie PasswordAuthentication
in Ihrer sshd_config
Datei
Suchen Sie die Zeile mit der Phrase PasswordAuthentication
und lassen Sie sie lesen:
PasswordAuthentication yes
Speichern Sie Ihre neue sshd_config
Datei und starten Sie den Host- ssh
Dienst neu:
sudo service ssh restart
Wenn Sie von überall über das Internet zugreifen müssen, richten Sie die Portweiterleitung auf Ihrem lokalen Router ein, um den Datenverkehr an Ihren OpenSSH-Server zu leiten
Beachten Sie, dass der ssh
Dienst des Port-Hosts die sshd_config
Datei abhört, und richten Sie Ihren Router so ein, dass TCP / UDP-Verkehr, der auf diesen Port gerichtet ist, an die IP-Adresse Ihres OpenSSH-Servers weitergeleitet wird.
Stellen Sie eine Verbindung zum Host her und melden Sie sich über die Befehlszeile oder das Terminal an
Um ein SFTP-Shell-Terminal als <username>
Host zu öffnen, öffnen Sie ein Terminal auf dem Client und geben Sie den folgenden Befehl ein, der 123.123.1.23
durch die IP-Adresse des Hosts ersetzt wird:
sftp <username>@123.123.1.23
Wenn Sie die Portnummer geändert haben, auf der der OpenSSH-Server des Hosts lauscht, gehen Sie wie folgt vor:
sftp -P <port_number_in_Host's_sshd_config_file> <username>@123.123.1.23
Um ein SSH-Shell-Terminal als <username>
Host zu öffnen, öffnen Sie ein Terminal auf dem Client und geben Sie den folgenden Befehl ein, der 123.123.1.23
durch die IP-Adresse des Hosts ersetzt wird:
ssh <username>@123.123.1.23
Wenn Sie die Portnummer geändert haben, auf der der OpenSSH-Server des Hosts lauscht, gehen Sie wie folgt vor:
ssh -p <port_number_in_Host's_sshd_config_file> <username>@123.123.1.23
Stellen Sie eine Verbindung zum Host her und melden Sie sich über den GUI-Dateimanager (z. B. Nautilus) an, um einen besseren visuellen SFTP-Zugriff für die Dateiübertragung zu erhalten
- Öffnen Sie Nautilus auf dem Client
- Wählen Sie Datei> Mit Server verbinden
- Art:
SSH
- Server: Geben Sie die IP-Adresse des Hosts ein
- Port: Portnummer in Host der angegebenen
sshd_config
Datei
- Benutzername: Benutzername
- Passwort: Passwort
In 14.04:
- Öffnen Sie Nautilus auf dem Client
- Verbinden zum Server
- Typ: `ssh @ 123.123.1.23:
Erstellen Sie Standardbenutzerkonten auf dem Host mit eingeschränkten Dateiberechtigungen außerhalb des Basisordners
Die auf dem Host vorhandenen Dateiberechtigungen garantieren, dass jeder Standardbenutzer (ohne Sudo-Berechtigungen), den Sie auf dem Host erstellen, sein /home/new_user
Verzeichnis besitzt, jedoch nur über eingeschränkte Berechtigungen für den Rest der Verzeichnisstruktur verfügt.
- Eingeschränkte Berechtigungen bedeuten nicht unbedingt, dass sie keine Dateinamen und Verzeichnisstrukturen anzeigen können.
Hoffe das ist hilfreich!
Schritt 1: Installieren Sie das OpenSSH-Paket, falls es nicht installiert ist
Schritt 2: Erstellen Sie eine separate Gruppe für SFTP-Benutzer.
Schritt 3: Bearbeiten Sie die
/etc/ssh/sshd_config
Datei und nehmen Sie die folgenden Änderungen vor. Suchen und kommentieren Sie unter der Zeile.und füge diese Zeilen am Ende der Datei hinzu.
Schritt 4: Starten Sie den sshd-Dienst neu.
Schritt 5: Fügen Sie einen Benutzer mit der Gruppe ftpaccess hinzu und erstellen Sie ein Kennwort.
Schritt 6: Ändern Sie die Berechtigung für das Basisverzeichnis.
Schritt 7: Erstellen Sie ein Verzeichnis für den Upload und ändern Sie die Berechtigung mit group.
Das ist es .
Siehe: SFTP auf Ubuntu einrichten
quelle
sudo chmod 711
für den Basisordner getan und es erlaubte mir, nur zum www-Ordner zu ftpen. Scheint bisher gut zu sein, aber vielleicht können andere ...Denyhosts ist neben den von "jtd" erwähnten ein weiteres Tool, das Sie sich ansehen sollten. Wiederholte Verbindungsversuche zu Ihrem SSH-Server können automatisch blockiert werden. Es kann in den Ubuntu-Repositories installiert werden.
quelle
Beschränken Sie den Zugriff auf den Benutzer
Hier erlauben wir nur dem Benutzer die Dateiübertragung und deaktivieren den Terminalzugriff.
Fügen Sie dazu die folgenden Codes am Ende der Konfigurationsdatei hinzu.
Jetzt wird die Datei geöffnet und der Code eingefügt.
Ersetzen Sie
filemg
durch Ihren Benutzernamen. Speichern und schließen Sie dann die Datei.Das ist es.
Referenz: Verwendung von SFTP in Ubuntu 16.04
quelle