SSH est un protocole sécurisé utilisé comme principal moyen de connexion à distance aux serveurs Linux. Il fournit une interface textuelle en créant un shell distant. Après la connexion, toutes les commandes que vous tapez dans votre terminal local sont envoyées au serveur distant et y sont exécutées.
Authentification
Les clients s'authentifient généralement à l'aide de mots de passe ou de clés SSH. Les mots de passe sont moins sécurisés, les clés ssh sont donc toujours recommandées.
Pour s'authentifier à l'aide de clés SSH, un utilisateur doit disposer d'une paire de clés SSH sur son ordinateur local. Sur le serveur distant, la clé publique doit être copiée dans un fichier du répertoire personnel de l'utilisateur à ~/.ssh/authorized_keys
. Ce fichier contient une liste de clés publiques, une par ligne, autorisées à se connecter à ce compte.
Génération d'une paire de clés SSH
Générer une combinaison pub/clé privée
ssh-keygen
# With options (Larger Number of Bits 4096 and file name)
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_citizix
# Explicit comment
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_citizix -C citizix_key
Les commandes ci-dessus généreront une paire de clés RSA SSH. Si l'emplacement des fichiers n'est pas spécifié, ils seront situés dans le .ssh
répertoire caché dans le répertoire personnel de votre utilisateur. Les fichiers par défaut sont :
~/.ssh/id_rsa
:La clé privée. NE PARTAGEZ PAS CE FICHIER !~/.ssh/id_rsa.pub
:La clé publique associée. Cela peut être partagé librement sans conséquence.
Supprimer ou modifier la phrase secrète d'une clé privée
Si vous avez généré une phrase secrète pour votre clé privée et que vous souhaitez la modifier ou la supprimer, utilisez les commandes suivantes :
ssh-keygen -p
ssh-keygen -p -f ~/.ssh/id_citizix
Saisissez l'ancienne phrase de passe que vous souhaitez modifier. Vous serez alors invité à entrer une nouvelle phrase secrète, ou vous pouvez simplement appuyer sur Entrée pour laisser vide.
Vérifier l'empreinte digitale de la clé SSH
Chaque paire de clés SSH partage une seule "empreinte digitale" cryptographique qui peut être utilisée pour identifier de manière unique les clés. Pour connaître l'empreinte d'une clé SSH, tapez :
ssh-keygen -l
ssh-keygen -l -f ~/.ssh/id_citizix
Copier votre clé SSH publique sur un serveur
Copier la clé publique sur un serveur distant permettra de se connecter sans mot de passe :
# This will prompt for a password
ssh-copy-id [email protected]_host
Après avoir saisi le mot de passe, le contenu de votre clé ~/.ssh/id_rsa.pub sera ajouté à la fin du fichier ~/.ssh/authorized_keys du compte utilisateur. Vous pouvez désormais vous connecter sans mot de passe :ssh [email protected]_host
Copier votre clé SSH publique sur un serveur sans SSH-Copy-ID
Si vous ne disposez pas de l'utilitaire ssh-copy-id, mais que vous disposez toujours d'un accès SSH basé sur un mot de passe au serveur distant, vous pouvez copier le contenu de votre clé publique d'une manière différente.
-
Copiez le contenu au bas du
~/.ssh/authorized_keys
du serveur distant fichier. -
Vous pouvez afficher le contenu de la clé et le diriger vers la commande ssh. Ajouter à
~/.ssh/authorized_keys
fichier.cat ~/.ssh/id_rsa.pub | ssh [email protected]_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Plus de piratage
Générer une clé ssh publique à partir d'une clé privée :
ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub
Exécution d'une seule commande sur un serveur distant
ssh [email protected]_host command_to_run
Connexion à un serveur avec un port différent
ssh -p port_num [email protected]_host
Utilisation d'un fichier de configuration :
# File ~/.ssh/config
Host remote_alias
HostName remote_host
Port port_num
Ajouter vos clés SSH à un agent SSH pour éviter de saisir la phrase secrète
Si vous avez une phrase secrète sur votre clé SSH privée, vous serez invité à saisir la phrase secrète chaque fois que vous l'utiliserez pour vous connecter à un hôte distant.
Pour éviter d'avoir à le faire à plusieurs reprises, vous pouvez exécuter un agent SSH. Ce petit utilitaire stocke votre clé privée après avoir entré la phrase de passe pour la première fois. Il sera disponible pendant toute la durée de votre session de terminal, vous permettant de vous connecter à l'avenir sans ressaisir la phrase secrète.
Pour démarrer l'agent SSH, saisissez ce qui suit dans votre session de terminal locale :
eval $(ssh-agent)
Ajoutez maintenant votre clé privée à l'agent, afin qu'il puisse gérer votre clé :
ssh-add
ssh-add -f ~/.ssh/id_citizix
Vous devrez saisir votre phrase de passe (si elle est définie). Ensuite, votre fichier d'identité est ajouté à l'agent, vous permettant d'utiliser votre clé pour vous connecter sans avoir à ressaisir la phrase secrète.
Transférer vos informations d'identification SSH à utiliser sur un serveur
Si vous souhaitez pouvoir vous connecter sans mot de passe à un serveur depuis un autre serveur, vous devrez transmettre vos informations de clé SSH. Cela vous permettra de vous authentifier auprès d'un autre serveur via le serveur auquel vous êtes connecté, en utilisant les informations d'identification sur votre ordinateur local.
Votre agent SSH doit être démarré et votre clé SSH ajoutée à l'agent. Connectez-vous ensuite au premier serveur avec l'option -A
pour transmettre vos informations d'identification au serveur pour cette session
ssh -A [email protected]_host