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 serverauf einem Host-Computer einrichten, und ein Benutzer kann dann ssheine 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_configDatei 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 nozu 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.pubeinzelnen Clients als neue Zeile der Hosts hinzu ~/.ssh/authorized_keys. Dann PasswordAuthentication nozu 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 PasswordAuthenticationin Ihrer sshd_configDatei
Suchen Sie die Zeile mit der Phrase PasswordAuthenticationund lassen Sie sie lesen:
PasswordAuthentication yes
Speichern Sie Ihre neue sshd_configDatei und starten Sie den Host- sshDienst 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 sshDienst des Port-Hosts die sshd_configDatei 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.23durch 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.23durch 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_configDatei
- 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_userVerzeichnis 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!