Oui, en utilisant ProxyCommand
dans votre configuration SSH.
Créez un fichier de configuration SSH dans votre répertoire personnel (sauf si vous souhaitez que cela soit à l’échelle du système), ~/.ssh/config
:
Host unibroker # Machine B definition (the broker)
Hostname 12.34.45.56 # Change this IP address to the address of the broker
User myusername # Change this default user accordingly
# ('[email protected]' can overwrite it)
Host internalmachine # Machine A definition (the target host)
ProxyCommand ssh -q unibroker nc -q0 hostname.or.IP.address.internal.machine 22
Vous pouvez maintenant accéder directement à la machine A en utilisant
ssh [email protected]
Notez également que vous disposez désormais d’un seul nom de cible d’hôte SSH, vous pouvez également l’utiliser dans d’autres applications. Par exemple:
Notes
Remplacez hostname.or.IP.address.internal.machine
et le port ( 22
) par la machine que vous souhaitez atteindre comme si vous utilisiez la machine unibroker
.
Selon les versions de netcat sur l'hôte unibroker, l'option -q0
doit être omise. Concernant l'authentification vous configurez essentiellement deux connexions SSH à partir de votre poste de travail. Cela signifie que l'hôte unibroker et l'hôte machine interne sont vérifiés / authentifiés l'un après l'autre (à la fois pour la vérification de la paire de clés / mot de passe et de la clé d'hôte).
Explication
Cette approche de l’utilisation de ProxyCommand
et de 'netcat' n’est qu’une façon de procéder. J'aime cela, car mon client SSH parle directement à la machine cible pour que je puisse vérifier la clé hôte depuis mon client et que je peux utiliser mon authentification par clé publique sans utiliser une autre clé sur le courtier.
Chaque Host
définit le début d'une nouvelle section hôte. Hostname
est le nom d'hôte ou l'adresse IP cible de cet hôte. User
est ce que vous fourniriez en tant que partie utilisateur dans ssh [email protected]
.
ProxyCommand
sera utilisé comme canal vers la machine cible. En utilisant SSH sur la première machine et en définissant directement un simple 'netcat' ( nc
) sur la cible à partir de là, il ne s'agit en fait que d'un simple transfert de texte vers la machine interne. Les options -q
permettent de faire taire toute sortie (uniquement une préférence personnelle).
Assurez-vous que netcat est installé sur le courtier (généralement disponible par défaut sur Ubuntu) - netcat-openbsd < img src="https://hostmar.co/software-small"> ou netcat-traditionnel < img src="https://hostmar.co/software-small"> .
Notez que vous utilisez toujours SSH avec le cryptage deux fois ici. Bien que le canal netcat soit en clair, votre client SSH sur votre PC configurera un autre canal crypté avec l’ordinateur cible final.