Comment utiliser la commande SCP pour transférer des fichiers

Comment utiliser la commande SCP pour transférer des fichiers

Ce tutoriel explique comment utiliser le SCP (Secure Copy) Commande pour transférer des fichiers entre les ordinateurs.

Le SCP La commande est disponible sur tous les systèmes Linux, UNIX et Windows. Sa mise en œuvre sera en toute probabilité améliorer et faciliter l'expérience de réseautage.

La sécurité est assurée par le ssh protocole.

Cette commande nous permet de transférer des fichiers de manière fiable et sûre d'un ordinateur à un autre. Avec la SFTP Commande, également protégée par le protocole SSH, SCP est l'une des techniques de transfert de fichiers les plus sûres.

Après avoir lu cet article, le lecteur pourra facilement partager et récupérer des fichiers avec des commandes uniques.

Tous les exemples pratiques de ce tutoriel contiennent des captures d'écran, ce qui facilite la compréhension de chaque utilisateur de Linux comment les commandes sont appliquées.

Exigences avant d'utiliser SCP

L'utilisateur téléchargera des fichiers ou téléchargera des fichiers vers, il doit faire fonctionner le service SSH.

Si le service est déjà en cours d'exécution sur le serveur, vous pouvez passer à la section suivante de cet article.

Si le service n'est pas en cours d'exécution, l'utilisateur peut l'installer en suivant les instructions ci-dessous pour les distributions Linux basées sur Debian et Redhat.

Sur les systèmes basés à Debian comme Ubuntu, le service SSH peut être installé avec le apte Packages Manager comme indiqué dans l'image ci-dessous.

sudo apt install ssh

Sur les systèmes basés sur RedHat comme CentOS, le service SSH peut être installé en exécutant la commande suivante:

DNF Install OpenSSH-Server

Lorsque l'installation se termine, sur le serveur auquel vous souhaitez vous connecter, démarrez le service avec le systemctl Commande comme indiqué ci-dessous (Systèmes basés sur Debian).

sudo systemctl start ssh

Pour démarrer le ssh Service sur les systèmes Redhat Exécutez:

sudo systemctl start sshd

Comment télécharger des fichiers et des répertoires avec SCP (Copie sécurisée)

Dans le premier exemple pratique de ce tutoriel, un utilisateur télécharge un fichier nommé <fichier1> À son répertoire d'origine.

Il est important de se souvenir du téléchargement ou du téléchargement des fichiers nécessite des informations d'identification d'un utilisateur existant dans l'ordinateur distant.

La syntaxe pour télécharger un fichier avec SCP est la suivante, où <Utilisateur à distance> est un utilisateur existant sur l'ordinateur distant auquel l'utilisateur souhaite télécharger des fichiers. <Serveur-ip> est l'hôte ou l'adresse IP du serveur stockant le fichier, <Path / vers / fichier> est le chemin d'accès au fichier à télécharger et <Directeur localY> est le répertoire local de l'ordinateur de l'utilisateur où le fichier est enregistré.

SCP @:

Dans l'exemple ci-dessous, l'utilisateur local linux-hint3 se connecte comme le linuxhint Utilisateur distant dans le serveur avec adresse IP 192.168.0.103 et télécharge un fichier nommé <fichier1> À son répertoire d'origine. Une publication LS L'exécution de la commande affiche fichier1 est localement présent.

SCP Linuxhint @ 192.168.0.103: fichier1 ~ /

Par défaut, après la connexion, le répertoire de travail actuel à distance est le répertoire à distance de l'utilisateur.

Le -O Le drapeau est utile pour exécuter l'héritage SCP nécessaire pour transférer des fichiers avec des systèmes qui n'ont pas implémenté le protocole SFTP.

SCP -o Linuxhint @ 192.168.0.103: fichier1 ~ /

Dans l'exemple ci-dessous, l'utilisateur télécharge un fichier nommé newfile2, stocké sous le Bureau / sous-répertoire. La destination locale du fichier est le répertoire local actuel représenté par une période.

SCP Linuxhint @ 192.168.0.103: Desktop / NewFile2 .

Le téléchargement des répertoires nécessite uniquement d'ajouter le -r (Récursif) indicateur comme indiqué dans la capture d'écran ci-dessous.

Dans l'exemple ci-dessous, l'utilisateur télécharge le répertoire distant nommé testdir / au sous-répertoire local nommé annuaire/.

SCP -R Linuxhint @ 192.168.0.103: testdir ~ / répertoire

Le -l Le drapeau permet de limiter le transfert de téléchargement dans KB / S pour contrôler la bande passante.

Dans la capture d'écran suivante, l'utilisateur limite la bande passante pour le transfert à 100 kb / ps. Comme vous pouvez le voir, l'utilisateur a utilisé un joker (*) pour télécharger tous les fichiers dont le nom commence par «ubuntu".

SCP -L 100 Linuxhint @ 192.168.0.103: Ubuntu * ~ /

Si l'utilisateur souhaite accélérer le transfert de fichiers, il peut ajouter le -C Pour compresser des fichiers ou des répertoires pendant le transfert, laissant la copie de destination non compressée (si la source l'était).

Dans l'exemple ci-dessous, l'utilisateur implémente le -C (Compress) Indicateur pour télécharger tous les fichiers à partir de «ubuntu"Au local Bureau / sous-répertoire.

SCP -C Linuxhint @ 192.168.0.103: Ubuntu * / Home / Linux-Hint3 / Desktop /

Le -4 L'option force la connexion via IPv4 et le -6 Option via IPv6.

Dans la capture d'écran suivante, l'utilisateur force le transfert de fichier via IPv4.

SCP -4 Linuxhint @ 192.168.0.103: Ubuntu * / Home / Linux-Hint3 / Desktop /

Comment télécharger des fichiers et des répertoires avec SCP

Cette section explique comment télécharger des fichiers avec des commandes uniques à l'aide de SCP.

La syntaxe pour télécharger des fichiers réguliers sur un système distant à l'aide de SFTP est la suivante:

SCP @:

Dans l'exemple ci-dessous, l'utilisateur télécharge un fichier nommé fichier1 au sous-répertoire distant nommé Documents /.

SCP File1 Linuxhint2 @ 192.168.0.103: documents /

Pour télécharger des répertoires, utilisez le récursif -r Flag, le reste de la syntaxe est similaire aux exemples décrits ci-dessus.

SCP -R Desktop / TestDir Linuxhint2 @ 192.168.0.103: documents /

Le -O Le drapeau est utile pour télécharger des fichiers sur des systèmes sans le protocole SFTP.

SCP -or Desktop / TestDir Linuxhint2 @ 192.168.0.103: documents /

Pour accélérer le transfert, également lors du téléchargement de fichiers, l'utilisateur peut compresser.

Dans l'exemple ci-dessous, l'utilisateur combine le récursif -r drapeau avec le -C (Flag de compression).

SCP -RC Desktop / TestDir Linuxhint2 @ 192.168.0.103: documents /

Invalidie SCP Authentification du mot de passe et activation de l'authentification des clés

À l'origine, le protocole SCP était basé sur le protocole SSH (Secure Shell), mais actuellement il fonctionne à travers de nouveaux protocoles comme SFTP ou rsync.

Le fichier de configuration à modifier pour activer l'authentification clé et désactiver la connexion du mot de passe est / etc / ssh / sshd_config. Ce fichier contient des options supplémentaires pour augmenter la sécurité de transfert de fichiers SCP.

Sur l'ordinateur, permettant des connexions entrantes à partir de l'endroit où les fichiers sont téléchargés ou où ils sont téléchargés, ouvrez le / etc / ssh / sshd_config fichier avec des privilèges à l'aide d'un éditeur de texte brut comme vigueur ou nano.

sudo nano / etc / ssh / sshd_config

Faites défiler vers le bas et trouvez la ligne contenant Pubkeyauthentication non, remplacer par Pubkeyauthentication oui (Remplace le "Non" avec "Oui»).

Confirmer également Permutrootlogine no Pour désactiver la connexion racine parce que tout le monde dans le monde connaît l'existence de l'utilisateur racinaire, qui peut être la cible de tout type d'attaque, y compris la force brute.

Le racine SuperUser existe dans tous les systèmes basés sur UNIX, y compris Linux. Ce n'est pas une bonne décision de permettre la connexion avec un nom d'utilisateur privilégié connu de tous dans le monde.

Ne désactivez pas encore la connexion du mot de passe car le processus de copie des clés nécessite la connexion du mot de passe avant que les systèmes ne puissent s'authentifier avec les clés.

Quittez les modifications d'enregistrement du fichier de configuration et redémarrez le service SSH en suivant les instructions ci-dessous.

Distributions Linux basées à Debian:

sudo systemctl redémarrer ssh

Distributions Linux basées sur Redhat:

sudo systemctl redémarrer ssh

Du côté client, le téléchargement et le téléchargement de fichiers de l'ordinateur, l'utilisateur doit générer la paire de touches avec le ssh-keygen commande.

Après avoir exécuté la commande, appuyez sur ENTRER Pour quitter le répertoire par défaut (~ /.ssh / id_rsa) ou l'équivalent dans votre distribution Linux. Le processus permet à la mise en œuvre d'une phrase secrète d'être requise lors de l'authentification. En incluant une phrase secrète, le niveau de sécurité augmente. Il est recommandé de taper un et d'appuyer sur ENTRER. Si vous ne voulez pas ajouter une phrase secrète, appuyez simplement sur ENTRER sans le taper.

ssh-keygen

Après avoir réussi à créer la paire de touches, le client doit envoyer la touche au serveur à l'aide du ssh-copy-id commande avec la syntaxe de l'exemple pratique suivant.

ssh-copy-id Linuxhint @ 192.168.0.103

Après la copie de la clé, testez la méthode d'authentification en vous connectant au deuxième appareil.

Si l'authentification clé réussit, l'utilisateur pourra se connecter sans taper le mot de passe. Si l'utilisateur a défini une phrase secrète lors de la création de la paire de touches, elle sera demandée au lieu du mot de passe comme indiqué dans la capture d'écran ci-dessous.

sftp @@

Après avoir confirmé que l'authentification de la clé publique fonctionne correctement, il est fortement recommandé de désactiver l'authentification du mot de passe.

Pour désactiver l'authentification du mot de passe, côté serveur, ouvrir le fichier / etc / ssh / sshd / config avec des privilèges à nouveau en utilisant un éditeur de texte comme nano ou vi.

sudo nano / etc / ssh / sshd / config

Faites défiler le fichier de configuration et remplacez la ligne PAsswordauthentification oui avec PasswordAuthentication Non.

Dans certains cas, lorsque le nombre d'utilisateurs est réduit, le port SCP / SSH peut être modifié pour empêcher les analyses massives. Ce changement doit être effectué dans ce fichier. Si l'utilisateur modifie le port par défaut, il doit implémenter l'option -p lors du transfert de fichiers.

Quitter et sauver les changements.

Sur les systèmes Linux basés à Debian, redémarrez le service SSH avec la commande suivante:

sudo systemctl redémarrer ssh

Redémarrez le service SSH sur les distributions Linux basées sur Redhat:

sudo systemctl redémarrer sshd

Maintenant, l'utilisateur est capable de se connecter avec une authentification clé.

Conclusion

L'utilisation de la commande SCP est assez facile. Chaque utilisateur de Linux peut l'apprendre à améliorer son expérience avec les tâches de réseautage. Il soutient définitivement l'interaction avec d'autres ordinateurs dans un réseau à partir de la ligne de commande. Toutes les instructions de ce tutoriel sont valables pour toutes les distributions Linux, à l'exception des méthodes d'installation limitées aux distributions Linux basées sur Debian et Redhat. Chaque administrateur de réseau fonctionnant à partir du terminal doit dominer cette commande.