GNU/Linux
Secure Shell (SSH)
Recherche…
Introduction
Un shell sécurisé est utilisé pour accéder à distance à un serveur depuis un client via une connexion chiffrée. OpenSSH est utilisé comme alternative aux connexions Telnet qui permettent d'accéder à un shell distant mais qui ne sont pas cryptées. Le client OpenSSH est installé par défaut sur la plupart des distributions GNU / Linux et est utilisé pour se connecter à un serveur. Ces exemples montrent comment utiliser la suite SSH pour accepter les connexions SSH et se connecter à un autre hôte.
Connexion à un serveur distant
Pour vous connecter à un serveur, nous devons utiliser SSH sur le client comme suit,
# ssh -p port user@server-address
- port - Le port ssh d'écoute du serveur (port 22 par défaut).
- user - Doit être un utilisateur existant sur le serveur avec des privilèges SSH.
- adresse du serveur - IP / domaine du serveur.
Pour un exemple concret, supposons que vous créez un site Web. La société que vous avez choisie pour héberger votre site vous indique que le serveur se trouve sur web-servers.com sur un port personnalisé en 2020 et que le nom de votre compte usr1 a été choisi pour créer un utilisateur sur le serveur avec des privilèges SSH. Dans ce cas, la commande SSH utilisée serait en tant que telle
# ssh -p 2020 [email protected]
Si le nom de compte sur le système distant est le même que celui du client local, vous pouvez laisser le nom d'utilisateur désactivé. Donc, si vous êtes usr1
sur les deux systèmes, vous pouvez simplement utiliser web-servers.com
au lieu de [email protected]
.
Lorsqu'un serveur auquel vous souhaitez vous connecter n'est pas directement accessible, vous pouvez essayer d'utiliser le commutateur ProxyJump via un autre serveur accessible et pouvant se connecter au serveur souhaité.
# ssh -J [email protected]:2020 [email protected] -p 2222
Cela vous permettra de vous connecter au serveur 10.0.0.2 (exécutant ssh sur le port 2222) via le serveur 10.0.0.1 (exécutant ssh sur le port 2020). Vous devrez bien sûr avoir des comptes sur les deux serveurs. Notez également que le commutateur -J est introduit dans OpenSSH version 7.3.
Installation de la suite OpenSSH
La connexion à un serveur de suppression SSH et l'acceptation de connexions SSH nécessitent l'installation de openssh
Debian:
# apt-get install openssh
Arch Linux:
# pacman -S openssh
Miam:
# yum install openssh
Générer une clé publique et privée
Pour générer des clés pour le client SSH:
ssh-keygen [-t rsa | rsa1 | dsa ] [-C <comment>] [-b bits]
Par exemple:
ssh-keygen -t rsa -b 4096 - C [email protected]
L'emplacement par défaut est ~/.ssh/id_rsa
pour private et ~/.ssh/id_rsa.pub
pour la clé publique.
Pour plus d'informations, rendez- vous sur man.openbsd.org
Configuration d'un serveur SSH pour accepter des connexions
Nous devons d'abord éditer le fichier de configuration du démon SSH. Bien que sous différentes distributions Linux, cela puisse se trouver dans des répertoires différents, il est généralement stocké sous /etc/ssh/sshd_config
Utilisez votre éditeur de texte pour modifier les valeurs définies dans ce fichier, toutes les lignes commençant par # sont commentées et ce caractère doit être supprimé pour prendre tout effet. Une liste de recommandations suit en tant que telle.
Port (chose a number between 0 - 65535, normaly greater than four digits)
PasswordAuthentication yes
AllowUsers user1 user2 ...etc
Notez qu'il est préférable de désactiver les connexions par mot de passe toutes ensemble et d'utiliser les clés SSH pour améliorer la sécurité, comme expliqué dans ce document.
Désactiver le service ssh
Cela désactivera le service côté serveur SSH, comme si cela était nécessaire, cela garantira que les clients ne peuvent pas se connecter via ssh
Ubuntu
sudo service ssh stop
Debian
sudo /etc/init.d/ssh stop
Arch Linux
sudo killall sshd
Connexion sans mot de passe (en utilisant une paire de clés)
Tout d'abord, vous devez avoir une paire de clés. Si vous n'en avez pas encore, jetez un coup d'œil à la rubrique "Générer un sujet de clé publique et privée".
Votre paire de clés est composée d'une clé privée (id_rsa) et d'une clé publique (id_rsa.pub). Tout ce que vous avez à faire est de copier la clé publique sur l'hôte distant et d'ajouter son contenu au fichier ~/.ssh/authorized_keys
.
Un moyen simple de le faire est:
ssh <user>@<ssh-server> 'cat >> ~/.ssh/authorized_keys' < id_rsa.pub
Une fois que la clé publique est correctement placée dans le répertoire de votre utilisateur, il vous suffit de vous connecter en utilisant la clé privée correspondante:
ssh <user>@<ssh-server> -i id_rsa