Un hôte de saut (également appelé serveur de saut) est un hôte intermédiaire ou une passerelle SSH vers un réseau distant, à travers lequel une connexion peut être établie à un autre hôte dans une zone de sécurité différente, par exemple une zone démilitarisée (DMZ). Il relie deux zones de sécurité différentes et offre un accès contrôlé entre elles.
Un hôte jump doit être hautement sécurisé et surveillé, en particulier lorsqu’il s’étend sur un réseau privé et une zone démilitarisée avec des serveurs fournissant des services aux utilisateurs sur Internet.
Un scénario classique consiste à se connecter à partir de votre ordinateur de bureau ou de votre ordinateur portable depuis le réseau interne de votre entreprise, qui est hautement sécurisé avec des pare-feu à une zone démilitarisée. Afin de gérer facilement un serveur dans une DMZ, vous pouvez y accéder via un hôte jump.
Dans cet article, nous allons montrer comment accéder à un serveur Linux distant via un hôte jump et nous allons également configurer les paramètres nécessaires dans vos configurations de client SSH par utilisateur.
Considérez le scénario suivant.
Dans le scénario ci-dessus, vous souhaitez vous connecter à l’HÔTE 2, mais vous devez passer par l’HÔTE 1, en raison du pare-feu, du routage et des privilèges d’accès. Il y a un certain nombre de raisons valables pour lesquelles les jumphosts sont nécessaires..
Liste dynamique de Jumphost
Le moyen le plus simple de se connecter à un serveur cible via un hôte de jump consiste à utiliser l’indicateur -J
de la ligne de commande. Cela indique à ssh d’établir une connexion à l’hôte de saut, puis d’établir un transfert TCP vers le serveur cible, à partir de là (assurez-vous d’avoir une connexion SSH sans mot de passe entre les machines).
$ ssh -J host1 host2
Si les noms d’utilisateur ou les ports sur les machines diffèrent, spécifiez-les sur le terminal comme indiqué.
$ ssh -J username@host1:port username@host2:port
Liste de plusieurs Jumphosts
La même syntaxe peut être utilisée pour effectuer des sauts sur plusieurs serveurs.
$ ssh -J username@host1:port,username@host2:port username@host3:port
Liste de Jumphost statique
La liste de jumphost statique signifie que vous connaissez le ou les jumphost dont vous avez besoin pour connecter une machine. Par conséquent, vous devez ajouter le ‘routage’ statique suivant de jumphost dans le fichier ~/.ssh/config
et spécifier les alias d’hôte comme indiqué.
### First jumphost. Directly reachableHost vps1 HostName vps1.example.org### Host to jump to via jumphost1.example.orgHost contabo HostName contabo.example.org ProxyJump contabo
Essayez maintenant de vous connecter à un serveur cible via un hôte de jump comme indiqué.
$ ssh -J vps1 contabo
La deuxième méthode consiste à utiliser l’option ProxyCommand pour ajouter la configuration jumphost dans votre fichier ~.ssh/config
ou $HOME/.ssh/config
comme indiqué.
Dans cet exemple, l’hôte cible est contabo et le jumphost est vps1.
Host vps1HostName vps1.example.orgIdentityFile ~/.ssh/vps1.pemUser ec2-userHost contaboHostName contabo.example.orgIdentityFile ~/.ssh/contabovpsPort 22User adminProxy Command ssh -q -W %h:%p vps1
Où la commande Proxy Command ssh -q -W %h:%p vps1
, signifie exécuter ssh en mode silencieux (en utilisant -q
) et en mode de transfert stdio (en utilisant -W
), rediriger la connexion via un hôte intermédiaire (vps1).
Essayez ensuite d’accéder à votre hôte cible comme indiqué.
$ ssh contabo
La commande ci-dessus ouvrira d’abord une connexion ssh à vps1 en arrière-plan effectuée par la commande mandataire, puis démarrera la session ssh vers le serveur cible contabo.
Pour plus d’informations, consultez la page de manuel ssh ou reportez-vous à : OpenSSH/Cookbxook/Proxies and Jump Hosts.
C’est tout pour l’instant! Dans cet article, nous avons démontré comment accéder à un serveur distant via un hôte jump. Utilisez le formulaire de commentaires ci-dessous pour poser des questions ou partager vos réflexions avec nous.