Android

Commande Ssh

Tuto SSH, Partie 1: Introduction, le chiffrement à clé publique

Tuto SSH, Partie 1: Introduction, le chiffrement à clé publique

Table des matières:

Anonim

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.

terminal ssh