J'aimerais savoir comment configurer des comptes d'utilisateurs root, Sudo, sftp-only, qui ne seront pas tenus de s'authentifier par clé publique lors de la connexion. J'aimerais également savoir comment configurer les répertoires de départ des utilisateurs sftp-only où ne peut pas accéder aux autres répertoires du niveau supérieur.
La meilleure ressource pour vous aider à commencer à configurer un service ssh sur une machine hôte utilisant Ubuntu est OpenSSH Server . Cela vous permettra d'utiliser protocole de transfert de fichiers SSH (également le protocole de transfert de fichiers sécurisé ou SFTP) pour accéder à, transférer et gérer des fichiers sur SSH à partir d'un ordinateur client.
OpenSSH server
sur une machine hôte et un utilisateur peut ensuite utiliser ssh
pour se connecter du client au serveur de l'hôte en utilisant uniquement un nom d'utilisateur et un mot de passe. Notez cependant que l’authentification par clé publique est recommandée."Assurez-vous que vous avez un mot de passe fort avant d'installer un serveur SSH (vous pouvez vouloir désactiver complètement les mots de passe )"
Pour installer un serveur OpenSSH sur l'hôte:
Sudo apt-get install openssh-server
Donnez à votre hôte une adresse IP statique pour pouvoir vous y connecter de manière fiable:
nm-connection-editor
Pour configurer votre serveur OpenSSH , "commencez par faire une sauvegarde de votre fichier sshd_config en le copiant dans votre répertoire personnel ou en créant une copie en lecture seule dans/etc/ssh en effectuant:"
Sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.factory-defaults
Sudo chmod a-w /etc/ssh/sshd_config.factory-defaults
"Une fois que vous avez sauvegardé votre fichier sshd_config
, vous pouvez apporter des modifications à l'aide de n'importe quel éditeur de texte, par exemple:"
Sudo -H gedit /etc/ssh/sshd_config
Vous devez redémarrer votre service ssh sur l'hôte pour que ces modifications prennent effet
Sudo service ssh restart
PermitRootLogin without-password
; ajouter PermitRootLogin no
au /etc/ssh/sshd_config
de l'hôtePort 22
; ajouter Port <new-port-number>
au /etc/ssh/sshd_config
de l'hôteListenAddress 192.168.0.10
AllowUsers <username>@<IP_address_1> <username>@<IP_address_2>
ou AllowUsers <username>@111.222.333.*
au /etc/ssh/sshd_config
de l'hôte.~/.ssh/id_rsa.pub
de chaque client en tant que nouvelle ligne du ~/.ssh/authorized_keys
de l'hôte. Ajoutez ensuite PasswordAuthentication no
à au /etc/ssh/sshd_config
de l'hôte.Sudo apt-get install ufw && Sudo ufw limit OpenSSH
PasswordAuthentication
dans votre fichier sshd_config
.Recherchez la ligne avec la phrase PasswordAuthentication
et faites-la lire:
PasswordAuthentication yes
Enregistrez votre nouveau fichier sshd_config
, puis redémarrez le service ssh
de l'hôte:
Sudo service ssh restart
Notez que le service ssh
de l'hôte du port écoute dans le fichier sshd_config
et configurez votre routeur pour qu'il transfère le trafic TCP/UDP destiné à ce port à l'adresse IP de votre serveur OpenSSH.
192.168.1.1
afin de vous connecter à votre routeur et d’installer la redirection de port. Voir Configurer le serveur et le routeur OpenSSH pour accepter la connexion SSH via Internet?Pour ouvrir un terminal Shell SFTP en tant que <username>
sur l'hôte, ouvrez un terminal sur le client et entrez la commande suivante en remplaçant 123.123.1.23
par l'adresse IP de l'hôte:
sftp <username>@123.123.1.23
Si vous avez modifié le numéro de port que le serveur OpenSSH de l'hôte écoute, procédez comme suit:
sftp -P <port_number_in_Host's_sshd_config_file> <username>@123.123.1.23
Pour ouvrir un terminal shell SSH en tant que <username>
sur l'hôte, ouvrez un terminal sur le client et entrez la commande suivante en remplaçant 123.123.1.23
par l'adresse IP de l'hôte:
ssh <username>@123.123.1.23
Si vous avez modifié le numéro de port que le serveur OpenSSH de l'hôte écoute, procédez comme suit:
ssh -p <port_number_in_Host's_sshd_config_file> <username>@123.123.1.23
SSH
name__sshd_config
de l'hôte.En 14.04:
Les autorisations de fichier appropriées en place sur l'hôte garantissent que chaque utilisateur standard (sans privilèges Sudo) que vous créez sur l'hôte possède son répertoire /home/new_user
mais dispose d'autorisations limitées avec le reste de la structure de répertoires.
J'espère que c'est utile!
Étape 1: Installez le paquet OpenSSH s'il n'est pas installé.
Sudo apt-get install openssh-server
Étape 2: Créez un groupe distinct pour les utilisateurs SFTP.
Sudo addgroup ftpaccess
Étape 3: Éditez le fichier /etc/ssh/sshd_config
et apportez les modifications ci-dessous. Trouvez et commentez sous la ligne.
#Subsystem sftp /usr/lib/openssh/sftp-server
et ajoutez ces lignes à la fin du fichier.
Subsystem sftp internal-sftp
Match group ftpaccess
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
Étape 4: redémarrez le service sshd.
Sudo service ssh restart
Étape 5: Ajoutez un utilisateur avec le groupe ftpaccess et créez un mot de passe.
Sudo adduser paul --ingroup ftpaccess --Shell /usr/sbin/nologin
Étape 6: Modifiez l'autorisation du répertoire de base.
Sudo chown root:root /home/paul
Étape 7: Créez un répertoire dans home pour le téléchargement et modifiez l'autorisation avec le groupe.
Sudo mkdir /home/paul/www
Sudo chown paul:ftpaccess /home/paul/www
C'est tout .
Référez-vous à: Setup SFTP on ubunt
Limiter l'accès à l'utilisateur
Ici, nous n'autoriserons que l'utilisateur à effectuer un transfert de fichier et nous désactiverons l'accès au terminal.
Pour cela, ajoutez les codes suivants au bas du fichier de configuration.
$ Sudo nano /etc/ssh/sshd_config
Maintenant, le fichier va s'ouvrir et coller le code.
/etc/ssh/sshd_config
. . .
Match User filemg
ForceCommand internal-sftp
PasswordAuthentication yes
ChrootDirectory /var/sftp
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
Remplacez filemg
par votre nom d'utilisateur. Puis enregistrez et fermez le fichier.
C'est tout.
Référence: Comment utiliser SFTP dans Ubuntu 16.04
Denyhosts est un autre outil que ceux mentionnés par "jtd" que vous voudrez peut-être regarder. Il peut bloquer automatiquement les tentatives de connexion répétées sur votre serveur SSH. Il est disponible pour être installé dans les dépôts Ubuntu.