Le protocole Secure Shell est un moyen courant de se connecter à une machine distante via des applications client/serveur. Il utilise un ensemble d’outils tels que ssh, scp et sftp, entre autres, pour assurer un processus d’authentification sécurisé et une communication cryptée qui s’ensuit. Pour cette raison, ces outils remplacent d’autres ensembles d’outils d’exécution de commandes à distance plus anciens tels que telnet, rcp et rlogin.
Dans ce guide, vous apprendrez comment installer et activer les services serveur/client OpenSSH sur votre machine. Il couvre également toutes les commandes nécessaires (outils SSH) pour accéder et gérer à distance les systèmes et transférer des fichiers entre les deux.
Premiers pas avec SSH
Par défaut, la plupart des systèmes Linux incluent les applications client et serveur ssh. Les packages qui incluent des outils ssh dans les distributions RHEL et Fedora sont openssh, openssh-server et openssh-client. Utilisez le grep commande pour récupérer les outils ssh de la liste installée :
yum list installed | grep openssh
Alors qu’Ubuntu n’inclut qu’un package openssh-client qui contient également un package openssh. Utilisez la commande grep pour répertorier les packages openssh dans Ubuntu, comme suit :
sudo dpkg --list | grep openssh
sudo apt-get install openssh-server
Lancer/activer le service SSH
La gestion du service openssh peut varier d’une distribution à l’autre, et quelles que soient les configurations par défaut, il ne démarre pas automatiquement. Utilisez l’ensemble de commandes suivant pour vous assurer que le service est opérationnel sur votre machine Linux :
systemctl status sshd.service #for Fedora and RHEL
systemctl status ssh #for Ubuntu
S’il ne fonctionne pas, vérifiez l’état du service comme suit :
systemctl start sshd.service #for Fedora and RHEL
systemctl ssh start #for Ubuntu
Pour lancer le openssh-server dès que le système démarre :
systemctl enable sshd.service
systemctl ssh enable
Parmi de nombreux autres outils permettant d’utiliser le protocole SSH pour l’accès à distance au système Linux, les plus fréquemment utilisés sont la commande ssh pour l’exécution de code à distance et la connexion, où scp et rsync sont utiles pour copier un ou plusieurs fichiers entre le client et le serveur.
La section couvre en détail les commandes décrites ci-dessus pour une gestion à distance efficace.
Connexion à distance
SSH est la commande que vous utiliserez le plus souvent pour la configuration à distance de votre serveur Linux exécutant le service sshd. Utilisez la commande ssh pour vérifier si vous pouvez vous connecter à votre serveur Linux pour l’exécution de la commande.
Vous pouvez utiliser une autre machine Linux pour vous connecter à votre serveur, ou vous pouvez vous en faire une idée en le simulant sur votre hôte local comme suit:
Pour la connexion à distance à un compte Ubuntu sur XXXX (où XXXX est l’adresse IP de l’appareil distant) :
ssh [email protected]
Pour la connexion à distance en tant qu’utilisateur local :
ssh localhost
Si vous vous connectez pour la première fois au serveur distant, il vous demandera la confirmation pour vous connecter au système, entrez Oui et saisissez le mot de passe du compte utilisateur.
Après la connexion, vous pouvez continuer avec l’exécution de la commande à distance car elle est similaire à la connexion normale, à la seule différence que la communication à distance est cryptée.
Une fois terminé, tapez le sortir pour terminer la session et revenir à votre système local. S’il ne parvient pas à fermer le shell distant, le ~. les touches effectuent également une tâche similaire et renvoient « Connexion à XXXX fermée ».
Exécution à distance
La commande ssh permet d’exécuter des commandes sur le système distant et renvoie une sortie sur la machine locale. Par exemple,
La commande suivante s’exécute en tant qu’utilisateur Ubuntu sur le serveur distant et renvoie le nom d’hôte:
ssh [email protected] hostname
Pour exécuter une commande qui inclut des options ou des indicateurs, entourez-la de guillemets doubles comme suit :
ssh [email protected] "cat /tmp/new_file"
La commande ci-dessus renvoie le contenu du fichier ci-dessus sur votre écran local.
Vous pouvez également exécuter plusieurs commandes sans vous reconnecter à chaque fois en activant le transfert X11 sur votre serveur. Ouvrez le sshd_config fichier à l’intérieur /etc/ssh répertoire et définir Transfert X11 à Oui comme suit:
Exécutez maintenant les commandes comme suit :
ssh -X [email protected] hostname & cat /tmp/new_file/ & exit
Copie de fichier via scp et rsync
le scp La commande vous permet de transférer/copier des fichiers du système distant vers le système local et vice-versa. Sa fonctionnalité est similaire à la commande rcp mais avec une communication cryptée RSA. Quelques exemples suivent.
Copiez le déposer du /etc/démo répertoire de la machine distante vers son /tmp dossier comme suit :
scp [email protected]:/home/ubuntu/demo/file /tmp
Cela permet également la copie récursive, ce qui signifie que vous pouvez fournir à la commande un répertoire, et cela copie tous les fichiers/dossiers de la hiérarchie vers un autre répertoire local.
scp -r localhost:/home/ubuntu/ /tmp
Vous pouvez également utiliser la commande scp pour la sauvegarde de fichiers et de répertoires, mais rsync est un meilleur utilitaire de sauvegarde pour plusieurs raisons :
- scp a une incapacité à conserver les autorisations de fichier/répertoire et l’heure/la date.
- Il est également incapable d’identifier les fichiers et répertoires déjà copiés.
Répertoriez maintenant le contenu des répertoires ci-dessus pour afficher les autorisations de fichier et l’heure de création, comme suit :
ls -l /etc/demo /tmp/demo
Répétez la commande scp ci-dessus et ré-énumérez les répertoires pour vérifier s’il remplace le fichier/répertoires déjà copiés à partir de son horodatage :
le -p indicateur pour la commande scp peut aider à préserver l’horodatage ou les autorisations d’écriture, mais elle remplace toujours les fichiers déjà copiés. Pour surmonter ces lacunes, utilisez rsync comme outil de sauvegarde. Supprimez d’abord les fichiers dans le /tmp répertoire pour continuer avec l’exemple ci-dessous. Utilisez la commande rsync avec le -une drapeau pour l’archivage récursif et le -v option pour verbeux pour copier le /accueil/ubuntu/demo fichiers au /tmp répertoire, comme suit :
rsync -av [email protected]:/home/ubuntu/demo /tmp
Lister les /tmp répertoire pour noter comment il préserve l’heure de création du fichier ou du répertoire.
Enfin, relancez le rsync commande pour vérifier qu’il ne copie aucun fichier.
Apprendre à connaître SSH
L’article est un guide du protocole le plus largement utilisé pour la gestion à distance des serveurs Linux. Nous montrons comment utiliser les commandes SSH les plus importantes avec quelques trucs et astuces pour faciliter la tâche de copie et de gestion des fichiers.
Commencer à comprendre les commandes/outils SSH et leurs fonctionnalités peut changer votre vision de la gestion du système/serveur car cela débloque les capacités non seulement de SSH mais également du terminal Linux. C’est un outil puissant qui offre une sécurité considérable, ainsi que des fonctionnalités supplémentaires trop avancées pour être couvertes dans un seul guide.
Lire la suite
A propos de l’auteur