Tuto SSH, Partie 1: Introduction, le chiffrement à clé publique
Table des matières:
- Installation du client OpenSSH
- Installation d'OpenSSH Client sous Linux
- Installer OpenSSH sur Ubuntu et Debian
- Installation d'OpenSSH sur CentOS et Fedora
- Installation d'OpenSSH Client sur Windows 10
- Installation d'OpenSSH Client sur macOS
- Comment utiliser la commande
ssh - Fichier de configuration SSH
- Redirection de port
- Transfert de port local
- Transfert de port à distance
- Redirection de port dynamique
- Conclusion
Secure Shell (SSH) est un protocole de réseau cryptographique utilisé pour une connexion cryptée entre un client et un serveur. Le client ssh crée une connexion sécurisée au serveur SSH sur une machine distante. La connexion cryptée peut être utilisée pour exécuter des commandes sur le serveur, le tunneling X11, la redirection de port, etc.
Il existe un certain nombre de clients SSH gratuits et commerciaux, OpenSSH étant le client le plus utilisé. Il est disponible sur toutes les principales plates-formes, y compris Linux, OpenBSD, Windows, macOS et autres.
, nous expliquerons comment utiliser le client de ligne de commande OpenSSH (
ssh
) pour se connecter à une machine distante et exécuter des commandes ou effectuer d'autres opérations.
Installation du client OpenSSH
Le programme client OpenSSH est appelé
ssh
et peut être appelé à partir du terminal. Le package client OpenSSH fournit également d'autres utilitaires SSH tels que
scp
et
sftp
installés en même temps que la commande
ssh
.
Installation d'OpenSSH Client sous Linux
Le client OpenSSH est préinstallé sur la plupart des distributions Linux par défaut. Si votre système n'a pas le client ssh installé, vous pouvez l'installer en utilisant le gestionnaire de paquets de votre distribution.
Installer OpenSSH sur Ubuntu et Debian
sudo apt update
sudo apt install openssh-client
Installation d'OpenSSH sur CentOS et Fedora
sudo dnf install openssh-clients
Installation d'OpenSSH Client sur Windows 10
La plupart des utilisateurs de Windows utilisent Putty pour se connecter à une machine distante via SSH. Cependant, les dernières versions de Windows 10 incluent un client et un serveur OpenSSH. Les deux packages peuvent être installés via l'interface graphique ou PowerShell.
Pour trouver le nom exact du package OpenSSH, tapez la commande suivante:
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
La commande doit renvoyer quelque chose comme ceci:
Name: OpenSSH.Client~~~~0.0.1.0 State: NotPresent Name: OpenSSH.Server~~~~0.0.1.0 State: NotPresent
Une fois que vous connaissez le nom du package, installez-le en exécutant:
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
En cas de succès, la sortie ressemblera à ceci:
Path: Online: True RestartNeeded: False
Installation d'OpenSSH Client sur macOS
macOS est livré avec le client OpenSSH installé par défaut.
Comment utiliser la commande
ssh
Les conditions suivantes doivent être remplies pour pouvoir se connecter à une machine distante via SSH:
- Un serveur SSH doit être exécuté sur la machine distante. Le port SSH doit être ouvert dans le pare-feu de la machine distante. Vous devez connaître le nom d'utilisateur et le mot de passe du compte distant. Le compte doit disposer des privilèges appropriés pour la connexion à distance.
La syntaxe de base de la commande
ssh
est la suivante:
ssh:HOST
Pour utiliser la commande
ssh
ouvrez votre terminal ou PowerShell et tapez
ssh
suivi du nom d'hôte distant:
ssh ssh.linuxize.com
Lorsque vous vous connectez à une machine distante via SSH pour la première fois, vous verrez un message comme ci-dessous.
The authenticity of host 'ssh.linuxize.com (192.168.121.111)' can't be established. ECDSA key fingerprint is SHA256:Vybt22mVXuNuB5unE++yowF7lgA/9/2bLSiO3qmYWBY. Are you sure you want to continue connecting (yes/no)?
Chaque hôte possède une empreinte digitale unique qui est stockée dans le fichier
~/.ssh/known_hosts
.
Tapez
yes
pour stocker l'empreinte digitale à distance et vous serez invité à entrer votre mot de passe.
Warning: Permanently added 'ssh.linuxize.com' (ECDSA) to the list of known hosts. [email protected]'s password:
Une fois le mot de passe entré, vous serez connecté à la machine distante.
Lorsque le nom d'utilisateur n'est pas donné, la commande
ssh
utilise le nom de connexion système actuel.
Pour vous connecter en tant qu'utilisateur différent, spécifiez le nom d'utilisateur et l'hôte au format suivant:
ssh username@hostname
Le nom d'utilisateur peut également être spécifié avec l'option
-l
:
ssh -l username hostname
Par défaut, quand aucun port n'est donné, le client SSH essaiera de se connecter au serveur distant sur le port 22. Sur certains serveurs, les administrateurs modifient le port SSH par défaut pour ajouter une couche de sécurité supplémentaire au serveur en réduisant le risque de attaques automatisées.
Pour vous connecter sur un port autre que celui par défaut, utilisez l'option
-p
pour spécifier le port:
ssh -p 5522 username@hostname
ssh -v username@hostname
Pour augmenter le niveau de verbosité, utilisez
-vv
ou
-vvv
.
La commande
ssh
accepte un certain nombre d'options.
Pour une liste complète de toutes les options, lisez la page de
man ssh
en tapant
man ssh
dans votre terminal.
Fichier de configuration SSH
Le client OpenSSH lit les options définies dans le fichier de configuration par utilisateur (
~/.ssh/config
). Dans ce fichier, vous pouvez stocker différentes options SSH pour chaque machine distante à laquelle vous vous connectez.
Un exemple de configuration SSH est illustré ci-dessous:
Host dev HostName dev.linuxize.com User mike Port 4422
Lorsque vous appelez le client ssh en tapant
ssh dev
la commande lira le fichier
~/.ssh/config
et utilisera les détails de connexion spécifiés pour l'hôte dev. Dans cet exemple,
ssh dev
est équivalent à ce qui suit:
ssh -p 4422 [email protected]
Pour plus d'informations, consultez l'article sur le fichier de configuration SSH.
Authentification par clé publique
Le protocole SSH prend en charge divers mécanismes d'authentification.
Le mécanisme d'authentification par clé publique vous permet de vous connecter au serveur distant sans avoir à taper votre mot de passe.
Cette méthode fonctionne en générant une paire de clés cryptographiques qui sont utilisées pour l'authentification. La clé privée est stockée sur la machine cliente et la clé publique est transférée vers chaque serveur distant auquel vous souhaitez vous connecter. Le serveur distant doit être configuré pour accepter l'authentification par clé.
ssh-keygen -t rsa -b 4096 -C "[email protected]"
Il vous sera demandé de saisir une phrase secrète sécurisée. Que vous souhaitiez utiliser la phrase secrète, c'est à vous de décider.
Une fois que vous avez votre paire de clés, copiez la clé publique sur le serveur distant:
ssh-copy-id username@hostname
Entrez le mot de passe de l'utilisateur distant et la clé publique sera ajoutée au fichier de l'utilisateur
authorized_keys
distantes.
Une fois la clé téléchargée, vous pouvez vous connecter au serveur distant sans être invité à saisir un mot de passe.
En définissant une authentification par clé, vous pouvez simplifier le processus de connexion et augmenter la sécurité globale du serveur.
Redirection de port
La tunnellisation SSH ou la redirection de port SSH est une méthode de création d'une connexion SSH chiffrée entre un client et une machine serveur à travers laquelle les ports de services peuvent être relayés.
Le transfert SSH est utile pour transporter des données réseau de services qui utilisent un protocole non chiffré, tel que VNC ou FTP, accéder à du contenu géo-restreint ou contourner des pare-feu intermédiaires. Fondamentalement, vous pouvez transférer n'importe quel port TCP et tunneler le trafic via une connexion SSH sécurisée.
Il existe trois types de redirection de port SSH:
Transfert de port local
La redirection de port locale vous permet de transférer une connexion de l'hôte client vers l'hôte du serveur SSH, puis vers le port hôte de destination.
Pour créer une redirection de port locale, passez l'option
-L
au client
ssh
:
ssh -L LOCAL_PORT:DESTINATION_HOST:DESTINATION_PORT -N -f username@hostname
L'option -f indique à la commande
ssh
de s'exécuter en arrière-plan et à
-N
ne pas exécuter de commande à distance.
Transfert de port à distance
La redirection de port à distance est l'opposé de la redirection de port locale. Il transfère un port de l'hôte serveur à l'hôte client, puis au port hôte de destination.
L'option
-L
indique à
ssh
de créer une redirection de port distante:
ssh -R REMOTE_PORT:DESTINATION:DESTINATION_PORT -N -f username@hostname
Redirection de port dynamique
La redirection de port dynamique crée un serveur proxy SOCKS qui permet la communication sur une gamme de ports.
Pour créer une redirection de port dynamique (SOCKS), passez l'option
-D
au client ssh:
ssh -D LOCAL_PORT -N -f username@hostname
Pour des informations plus détaillées et des instructions étape par étape, consultez l'article sur la configuration du tunnel SSH (redirection de port).
Conclusion
Pour vous connecter à un serveur distant via SSH, utilisez la commande
ssh
suivie du nom d'utilisateur et du nom d'hôte distants (
ssh username@hostname
).
Savoir utiliser la commande
ssh
est essentiel pour gérer un serveur distant.
Centre de commande de Red Hat Posts
Le service de surveillance des systèmes et applications Linux est maintenant en ligne, avec une version d'essai gratuite.
Comcast fait appel de la commande de gestion de réseau de FCC
Comcast fait appel d'une ordonnance de la FCC contre ses pratiques de gestion de réseau. , a déposé un appel en justice d'une décision de la Federal Communications Commission des États-Unis le mois dernier, affirmant que la société ne pouvait pas retarder le trafic entre pairs sur son réseau.
TiVo lance la commande de pizzas à la TV - Et après?
Domino's Pizza s'associe à Tivo pour créer une patate de canapé service de rêve. Vous serez bientôt en mesure de commander des pizzas à travers TiVo.







