Tuto SSH, Partie 1: Introduction, le chiffrement à clé publique
Table des matières:
- Conditions préalables
- Emplacement du fichier de configuration SSH
- Structure et modèles de fichiers de configuration SSH
- Exemple de fichier de configuration SSH
- Exemple de fichier de configuration SSH partagé
- Remplacer l'option de fichier de configuration SSH
- Conclusion
Une option serait de créer un alias bash pour chaque connexion de serveur distant. Cependant, il existe une autre solution, bien meilleure et plus simple à ce problème. OpenSSH vous permet de configurer un fichier de configuration par utilisateur où vous pouvez stocker différentes options SSH pour chaque machine distante à laquelle vous vous connectez.
Ce guide couvre les bases du fichier de configuration du client SSH et explique certaines des options de configuration les plus courantes.
Conditions préalables
Nous supposons que vous utilisez un système Linux ou macOS avec le client OpenSSH installé.
Emplacement du fichier de configuration SSH
Le fichier de configuration côté client OpenSSH est nommé
config
et il est stocké dans le répertoire
.ssh
sous le répertoire personnel de l'utilisateur.
Le répertoire
~/.ssh
est automatiquement créé lorsque l'utilisateur exécute la commande
ssh
pour la première fois. Si le répertoire n'existe pas sur votre système, créez-le à l'aide de la commande ci-dessous:
mkdir -p ~/.ssh && chmod 700 ~/.ssh
Par défaut, le fichier de configuration SSH peut ne pas exister, vous devrez peut-être le créer à l'aide de la commande tactile:
touch ~/.ssh/config
Ce fichier doit être lisible et accessible en écriture uniquement par l'utilisateur, et non accessible par d'autres:
Structure et modèles de fichiers de configuration SSH
Le fichier de configuration SSH prend la structure suivante:
Host hostname1 SSH_OPTION value SSH_OPTION value Host hostname2 SSH_OPTION value Host * SSH_OPTION value
Le contenu du fichier de configuration du client SSH est organisé en strophes (sections). Chaque strophe commence par la directive
Host
et contient des options SSH spécifiques qui sont utilisées lors de l'établissement d'une connexion avec le serveur SSH distant.
L'indentation n'est pas requise mais est recommandée car elle facilite la lecture du fichier.
La directive
Host
peut contenir un modèle ou une liste de modèles séparés par des espaces. Chaque modèle peut contenir zéro ou plusieurs caractères non blancs ou l'un des spécificateurs de modèle suivants:
-
*
- Correspond à zéro ou plusieurs caractères. Par exemple,Host *
correspond à tous les hôtes, tandis que192.168.0.*
Correspond aux hôtes du sous-réseau192.168.0.0/24
.?
- Correspond exactement à un caractère. Le modèle,Host 10.10.0.?
correspond à tous les hôtes dans10.10.0.
intervalle.!
- Lorsqu'il est utilisé au début d'un motif, il annule la correspondance. Par exemple, l'Host 10.10.0.* !10.10.0.5
correspond à tout hôte du sous-réseau10.10.0.5
exception de10.10.0.5
.
Le client SSH lit le fichier de configuration strophe par strophe et si plusieurs modèles correspondent, les options de la première strophe correspondante sont prioritaires. Par conséquent, des déclarations plus spécifiques à l'hôte doivent être fournies au début du fichier et des remplacements plus généraux à la fin du fichier.
Vous pouvez trouver une liste complète des options ssh disponibles en tapant
man ssh_config
dans votre terminal ou en visitant la page de manuel ssh_config.
Le fichier de configuration SSH est également lu par d'autres programmes tels que
scp
,
sftp
et
rsync
.
Exemple de fichier de configuration SSH
Maintenant que nous avons couvert les bases du fichier de configuration SSH, regardons l'exemple suivant.
En règle générale, lorsque vous vous connectez à un serveur distant via SSH, vous devez spécifier le nom d'utilisateur distant, le nom d'hôte et le port. Par exemple, pour vous connecter en tant qu'utilisateur nommé
john
à un hôte appelé
dev.example.com
sur le port
2322
partir de la ligne de commande, vous devez taper:
ssh [email protected] -p 2322
Pour vous connecter au serveur en utilisant les mêmes options que celles fournies dans la commande ci-dessus en tapant simplement
ssh dev
, placez les lignes suivantes dans votre fichier
"~/.ssh/config
:
Host dev HostName dev.example.com User john Port 2322
Maintenant, lorsque vous tapez
ssh dev
, le client ssh lit le fichier de configuration et utilise les détails de connexion spécifiés pour l'hôte
dev
:
Exemple de fichier de configuration SSH partagé
Cet exemple donne des informations plus détaillées sur les modèles d'hôte et la priorité des options.
Prenons l'exemple de fichier suivant:
Host targaryen HostName 192.168.1.10 User daenerys Port 7654 IdentityFile ~/.ssh/targaryen.key Host tyrell HostName 192.168.10.20 Host martell HostName 192.168.10.50 Host *ell user oberyn Host * !martell LogLevel INFO Host * User root Compression yes
-
Lorsque vous tapez
ssh targaryen
, le client ssh lit le fichier et applique les options de la première correspondance, qui estHost targaryen
. Ensuite, il vérifie les strophes suivantes une par une pour un motif correspondant. Le prochain correspondant estHost * !martell
(c'est-à-dire tous les hôtes saufmartell
), et il appliquera l'option de connexion à partir de cette strophe. La dernière définitionHost *
correspond également, mais le client ssh ne prendra que l'optionCompression
car l'optionUser
est déjà définie dans la stropheHost targaryen
.La liste complète des options utilisées lorsque vous tapez
ssh targaryen
est la suivante:HostName 192.168.1.10 User daenerys Port 7654 IdentityFile ~/.ssh/targaryen.key LogLevel INFO Compression yes
Lors de l'exécution de
ssh tyrell
les modèles d'hôte correspondants sont:Host tyrell
,Host *ell
,Host * !martell
etHost *
. Les options utilisées dans ce cas sont:HostName 192.168.10.20 User oberyn LogLevel INFO Compression yes
HostName 192.168.10.50 User oberyn Compression yes
Pour toutes les autres connexions, le client ssh utilisera les options spécifiées dans les sections
Host * !martell
etHost *
.
Remplacer l'option de fichier de configuration SSH
Le client ssh lit sa configuration dans l'ordre de priorité suivant:
- Options spécifiées à partir de la ligne de commande.Options définies dans le
~/.ssh/config
.Options définies dans le/etc/ssh/ssh_config
.
Host dev HostName dev.example.com User john Port 2322
et vous souhaitez utiliser toutes les autres options, mais pour vous connecter en tant qu'utilisateur
root
au lieu de
john
spécifiez simplement l'utilisateur sur la ligne de commande:
ssh -o "User=root" dev
L'option
-F
(
configfile
) vous permet de spécifier un autre fichier de configuration par utilisateur.
Pour dire au client
ssh
d'ignorer toutes les options spécifiées dans le fichier de configuration ssh, utilisez:
ssh -F /dev/null [email protected]
Conclusion
Nous vous avons montré comment configurer votre fichier de configuration utilisateur ssh. Vous pouvez également configurer une authentification basée sur une clé SSH et vous connecter à vos serveurs Linux sans entrer de mot de passe.
Par défaut, SSH écoute sur le port 22. La modification du port SSH par défaut ajoute une couche de sécurité supplémentaire à votre serveur en réduisant le risque d'attaques automatisées.
terminal sshFichier Fisher: Freeware pour copier ou déplacer des types particuliers de fichier à partir d`un groupe mélangé
Télécharger File Fisher, un logiciel gratuit copier ou déplacer des types de fichiers particuliers à partir d`un ensemble de fichiers mélangés dans Windows. Sélectionnez le dossier source & destination, le reste de la tâche est géré par le freeware.
Impossible d`enregistrer le fichier car le fichier source n`a pas pu être lu
Si vous ne pouvez pas télécharger & vous voyez appdatalocaltemp n`a pas pu être enregistré car le fichier source ne pouvait pas être lu dans Firefox, voici ce que vous devez faire.
Configuration, configuration, utilisation Serveur de pommes de terre distant: Tutoriel de capture détaillée
Ce tutoriel de capture d`écran vous explique comment configurer, Utiliser Remote Potato Server sous Windows 7.