Comment utiliser la commande SFTP dans Linux

Comment utiliser la commande SFTP dans Linux

Ce tutoriel explique comment connecter et transférer des fichiers via le protocole SFTP dans Linux, ainsi que la sécurisation en mettant en œuvre des mesures de sécurité.

Le SFTP La commande est l'un des outils les plus utiles pour chaque utilisateur du réseau, y compris les utilisateurs domestiques. Cette commande peut également être implémentée dans Windows Systems, ce qui le rend attrayant pour chaque type de réseau.

C'est l'un des principaux outils de ligne de commande pour partager en toute sécurité les fichiers entre les ordinateurs. De plus, pour télécharger et télécharger des fichiers et répertoires, l'utilisateur peut modifier à distance les autorisations, supprimer et renommer des fichiers et plus.

SFTP est une commande qui améliorera certainement l'expérience de réseautage à partir de la ligne de commande.

Après avoir lu cet article et appliqué des exemples (ils peuvent également être reproduits dans une machine virtuelle), le lecteur saura comment configurer les systèmes Linux pour transférer des fichiers avec la commande SFTP, à la fois en mode interactif et en ligne de commande.

Le contenu est valable pour toutes les distributions Linux et comprend des captures d'écran de scénarios réels, ce qui permet à tous les lecteurs de comprendre comment les commandes sont appliquées indépendamment du niveau de connaissance antérieur.

Bref introduction à SFTP

Anciennement FTP (Protocole de transfert de fichiers) était la seule méthode à transférer des fichiers entre les clients et les serveurs ou entre deux appareils réseau.

Les utilisateurs ont l'habitude de télécharger tous les fichiers de téléchargement à partir de serveurs FTP avec des autorisations à lire et à écrire sur les répertoires autorisés.

Mais le protocole FTP a subi des vulnérabilités à haut risque et a été remplacé par des protocoles plus récents et plus sécurisés. Deux exemples largement connus sont SCP (Secure Copy Protocol) et SFTP (Secure File Transference Protocol). SFTP est l'un des remplacements les plus populaires pour le protocole FTP.

Comme FTP, SFTP peut être utilisé via un mode de texte interactif ou en exécutant des commandes uniques. Ce tutoriel explique les deux techniques.

Exigences précédentes pour utiliser SFTP

Le SFTP Le protocole nécessite ssh (Secure Secure) à installer et à exécuter sur le serveur que vous souhaitez télécharger des fichiers ou télécharger des fichiers vers.

Si votre serveur a déjà le SSH en cours d'exécution, vous pouvez passer à la prochaine section SFTP.

Sur les distributions Linux basées à Debian, SSH peut être installé en utilisant le apte Packages Manager comme indiqué dans la capture d'écran ci-dessous.

sudo apt install ssh

Sur les distributions Linux basées sur RedHat, SSH peut être installé en exécutant la commande suivante:

DNF Install OpenSSH-Server

Une fois installé, sur le serveur auquel vous souhaitez vous connecter, démarrez le service avec le systemctl Commande comme indiqué ci-dessous (distributions basées sur Debian).

sudo systemctl start ssh

Pour démarrer le service SSH sur les distributions basées sur Redhat, exécutez:

sudo systemctl start sshd

Comment utiliser SFTP en mode interactif

Cette section couvre le SFTP Utilisation du mode interactif.

La seule commande à exécuter pour accéder au SFTP serveur avant d'obtenir le SFTP L'invite de commande est la demande de connexion, qui a la syntaxe similaire à ssh et SCP.

L'exemple ci-dessous décrit la syntaxe correcte, où <Utilisateur> doit être remplacé par un utilisateur existant sur le serveur et <Servir> avec l'hôte du serveur ou l'adresse IP.

SFTP @

Dans la capture d'écran ci-dessous, l'utilisateur local linux-hint3 se connecte en tant qu'utilisateur distant linuxhint au serveur avec adresse IP 192.168.0.103.

sftp linuxhint @ 192.168.0.103

La première fois que l'utilisateur se connecte au serveur, il sera invité à confirmer la connexion. L'utilisateur doit taper "Oui", presse ENTRER et remplissez le mot de passe.

Une fois l'utilisateur se connecter, le serveur renvoie un sftp> Invite de commande où l'utilisateur peut exécuter le SFTP commandes.

Le SFTP Le mode interactif permet aux utilisateurs d'interagir à la fois avec les systèmes locaux et distants.

Les commandes Linux normales ont un impact sur le serveur. Commandes en commençant par un «l»Sont exécutés dans le système local.

Par exemple, si l'utilisateur exécute le PWD Commande, il affichera le répertoire de travail actuel à distance. Mais si l'utilisateur exécute le LPWD, il montrera le répertoire actuel local.

Par défaut, le répertoire distant local est le répertoire de la maison d'utilisateurs à distance, à l'exception de certains cas comme l'exemple suivant, dans lequel l'utilisateur distant n'a pas de répertoire domestique.

Dans la capture d'écran ci-dessous, le PWD La commande est exécutée pour afficher le répertoire de travail actuel à distance.

PWD

Alors, LPWD est exécuté pour afficher le répertoire de travail actuel local.

LPWD

Comme vous pouvez le voir dans la capture d'écran ci-dessus, le répertoire de travail actuel à distance est le répertoire racine (car le linuxhint4 L'utilisateur à distance n'a pas de répertoire domestique) et le répertoire de travail local est la maison locale.

Si l'utilisateur exécute le LS (Liste) Commande, il affichera des fichiers et répertoires distants dans le répertoire de travail actuel.

LS

En exécutant lls (Liste locale), la commande affichera des fichiers et des répertoires dans le répertoire de travail actuel local.

Avec le CD (Modifier le répertoire) Commande, l'utilisateur peut se déplacer entre les répertoires distants. Avec le LCD (Modifier localement répertoire) Commande, l'utilisateur peut se déplacer entre les répertoires locaux, comme le montre la figure suivante.

La syntaxe pour télécharger un fichier depuis le serveur est la suivante:

obtenir

Ou

obtenir

Dans l'exemple ci-dessous, l'utilisateur télécharge le fichier nommé Fichier10 puis court lls (Liste locale) confirmant que le fichier a été correctement téléchargé.

Obtenez le fichier10

Pour télécharger des répertoires, la syntaxe est presque la même sauf pour le -r Flag comme indiqué ci-dessous.

get -r

Ou

get -r

Dans l'exemple ci-dessous, l'utilisateur télécharge un répertoire nommé Répertoire1.

Get -r Directory1

Pour télécharger des fichiers, la syntaxe est la suivante:

mettre

Dans l'exemple pratique ci-dessous, l'utilisateur télécharge un fichier nommé <déposer>

Pour télécharger des répertoires, ajoutez simplement le -r drapeau.

Mettre -r

Ou

mettre -r

Les utilisateurs peuvent supprimer des fichiers également à distance en utilisant les mêmes commandes Linux. Par exemple, pour supprimer un fichier, il suffit d'exécuter:

RM

Pour supprimer les répertoires, ajoutez le -r Flag comme indiqué ci-dessous.

Rm -r

Le df -h La commande peut être utilisée pour afficher l'espace du serveur total, l'espace utilisé et disponible.

df -h

Les utilisateurs peuvent également modifier les autorisations de fichiers et de répertoires avec le chod Commande comme indiqué dans l'exemple ci-dessous.

Chmod + /-

Pour quitter le mode interactif sortie.

Sortie

Une autre façon de quitter le SFTP La session est la au revoir commande.

Au revoir

En utilisant SFTP Avec des commandes uniques

De plus, en mode interactif, SFTP peut être utilisé avec des commandes uniques. Cette section couvre comment télécharger et télécharger des fichiers sans connexion précédente au mode interactif.

La syntaxe pour télécharger des fichiers est la suivante:

SFTP @:

Dans l'exemple ci-dessous, l'utilisateur se connecte comme le linuxhint5 utilisateur et télécharge le cibles.SMS Fichier distant au répertoire local représenté par une période.

sftp linuxhint5 @ 192.168.0.103: cibles.SMS .

Dans l'exemple pratique ci-dessous, l'utilisateur télécharge le fichier nommé quelque chose2.SMS situé dans la télécommande testdir / sous-répertoire au local Bureau / sous-répertoire.

sftp linuxhint @ 192.168.0.103: testdir / quelque chose2.txt ~ / Desktop

Comme indiqué dans l'exemple ci-dessous, en ajoutant le -r Indicateur, l'utilisateur peut télécharger des répertoires récursivement. Dans l'exemple suivant, l'utilisateur télécharge le testdir/ Répertoire au local Bureau/ répertoire.

sftp -r Linuxhint @ 192.168.0.103: TestDir / ~ / Desktop

Pour télécharger des fichiers en exécutant une seule commande avec SFTP, appliquez la syntaxe ci-dessous.

SFTP @: <<< $'put '

Dans l'exemple ci-dessous, le local Fichier2 est téléchargé sur le testdir / annuaire.

sftp linuxhint @ 192.168.0.103: testdir / <<< $'put file2'

Pour télécharger un répertoire, ajouter le -r Option utilisant la syntaxe suivante

sftp -r @: <<< $'put '

Dans l'exemple ci-dessous, le Bureau / Le répertoire local est téléchargé dans la télécommande perl5 / annuaire.

sftp -r Linuxhint @ 192.168.0.103: Perl5 / <<< $'put Desktop'

Augmenter la sécurité SFTP avec l'authentification clé

Par défaut, les connexions SFTP sont sûres et protégées par le protocole SSH.

Mais l'un des risques est la méthode de connexion par mot de passe par défaut en raison de la faiblesse du mot de passe, qui comprend l'échange de mot de passe ou les canaux de partage de mot de passe, les processus. Dans lequel, les mots de passe peuvent être divulgués, par exemple, avec une attaque MIM (homme au milieu) suivie d'une description réussie.

Si le serveur n'est pas correctement configuré, la connexion du mot de passe peut exposer le système aux attaques de force brute.

Pour éviter cela, une bonne pratique pour les réseaux de petite et moyenne taille est d'implémenter l'authentification des clés SSH et de désactiver la connexion du mot de passe.

Implémentation d'authentification des clés SSH et de désactivation de la connexion du mot de passe

Le SFTP La sécurité est accordée par le protocole SSH, dont le fichier de configuration est / etc / ssh / sshd_config, Les utilisateurs de fichiers doivent être modifiés pour activer l'authentification clé et désactiver la connexion du mot de passe parmi plus d'options pour renforcer la sécurité.

Sur le serveur permettant des connexions entrantes, modifiez le / etc / ssh / sshd_config fichier avec des privilèges à l'aide d'un éditeur de texte brut comme nano ou vi.

sudo nano / etc / ssh / sshd_config

Pour activer l'authentification clé, sur l'ordinateur du serveur, ouvrez le / etc / ssh / sshd_config déposer avec des privilèges et trouver la ligne contenant Pubkeyauthentication non. Remplacer par Pubkeyauthentication oui (Remplace le "Non" avec "Oui»).

Confirmer également Permutrootlogine no Pour désactiver la connexion racine.

Le racine L'utilisateur est présent dans tous les systèmes basés sur UNIX, y compris Linux. C'est une mauvaise décision de permettre à la connexion avec un nom d'utilisateur avec des privilèges connus de tout le monde.

Ne modifiez pas encore les options pour désactiver la connexion du mot de passe, car le processus de partage des clés nécessite l'authentification du mot de passe avant que le système ne puisse s'authentifier avec les clés.

Quittez les modifications d'enregistrement du fichier de configuration et redémarrez le service SSH.

Distributions Linux basées à Debian:

sudo systemctl redémarrer ssh

Distributions Linux basées sur Redhat:

sudo systemctl redémarrer ssh

Côté client, en demandant des connexions à venir, générez la paire de touches en exécutant le ssh-keygen commande.

Le processus demandera la confirmation du répertoire des clés, appuyez sur ENTRER Pour quitter le répertoire local par défaut (~ /.ssh / id_rsa) ou l'équivalent dans votre distribution Linux. Le processus proposera d'inclure une phrase secrète à revoir lors de la connexion. En ajoutant une phrase secrète, la sécurité peut être augmentée. Il est recommandé de taper un et d'appuyer sur ENTRER. Si vous ne voulez pas ajouter de phrase secrète, appuyez simplement sur ENTRER sans le taper.

ssh-keygen

Maintenant, le client doit partager la clé avec le serveur avec la commande ssh-copy-id en utilisant la syntaxe de l'exemple suivant.

ssh-copy-id Linuxhint @ 192.168.0.103

Après avoir partagé la clé, testez la méthode d'authentification clé en vous connectant au serveur.

Si l'authentification réussit, l'utilisateur se connectera sans mot de passe. Si l'utilisateur définit une phrase secrète, elle sera demandée à la place du mot de passe comme dans l'exemple ci-dessous.

sftp @@

Après avoir vérifié l'authentification clé fonctionne, il est fortement recommandé de désactiver la connexion du mot de passe.

Côté serveur, Modifier le fichier / etc / ssh / sshd / config Encore une fois avec un éditeur de texte comme nano ou vi.

sudo nano / etc / ssh / sshd / config

Faites défiler vers le bas et remplacez la ligne PAsswordauthentification oui avec PasswordAuthentication Non.

Redémarrez le service SSH.

sudo systemctl redémarrer sshd

Distributions Linux basées sur Redhat:

sudo systemctl redémarrer ssh

Maintenant, la sécurité d'authentification est correctement augmentée.

Conclusion

SFTP est un outil très utile pour partager des fichiers entre les appareils et propose deux modes simples. Le protocole SFTP peut être installé sur chaque système d'exploitation, offrant la sécurité, la fiabilité et la vitesse. Alternativement, le SCP La commande offre également la fiabilité, la vitesse et la sécurité et fonctionne via le protocole SSH. Cette deuxième commande a également été profondément expliquée à Linux Hint (le lien a été donné dans l'introduction de ce document).