Est-il possible d'utiliser OpenSSH pour relayer vers d'autres appareils compatibles SSH tels que des routeurs, des commutateurs, etc. Si est-ce quelque chose qui peut être fait sans créer une application sur mesure sur Linux pour le faire?
Merci
Est-il possible d'utiliser OpenSSH pour relayer vers d'autres appareils compatibles SSH tels que des routeurs, des commutateurs, etc. Si est-ce quelque chose qui peut être fait sans créer une application sur mesure sur Linux pour le faire?
Merci
Réponses:
Sûr; utilisez simplement la redirection de port / tunneling SSH. Démarrez une connexion ssh à la machine "proxy" à l'aide de la commande suivante:
ssh -L$LOCALPORT:$REMOTEHOST:$SSHPORT $PROXYHOST
$PROXYHOST
: la machine à laquelle vous avez accès SSH$REMOTEHOST
: la machine à laquelle $ PROXYHOST peut se connecter, mais vous ne pouvez pas. Utilisez un nom d'hôte ou une adresse IP $PROXYHOST
pouvant faire référence à la machine$SSHPORT
: le port que sshd écoute sur remotehost; très probablement 22$LOCALPORT
: le port sortant local SSH s'ouvre sur votre machine locale qui transmet au port 22 sur $REMOTEHOST
Laissez cette connexion en place pour que le tunnel fonctionne. Vous voudrez peut-être également ajouter -N
à la commande afin que cette connexion ne fasse pas apparaître un shell distant et que vous ne le fermiez pas accidentellement plus tard.
Une fois le tunnel établi, procédez comme suit:
ssh -p $LOCALPORT localhost
Cela tente une connexion SSH à votre machine locale sur le port qui est transmis au $REMOTEHOST
port SSH du.
Si vous êtes prêt à mettre à jour la configuration de votre client, vous pouvez configurer votre client pour utiliser votre passerelle comme proxy . Votre boîtier de relais aura besoin de netcat installé, et pour les meilleurs résultats, vous voudrez avoir une configuration d'authentification basée sur les clés.
Voici ce que j'utilise dans mon .ssh / config pour me connecter via un autre hôte.
Host internal-ssh-host-proxy
ProxyCommand /usr/bin/ssh username@ssh-relay-host "/bin/netcat -w 1 internal-ssh-host 22"
Avec ce qui précède, vous pouvez simplement exécuter la commande ssh internal-ssh-host-proxy à partir de votre machine client.
Si l'hôte SSH proxy est doté du client OpenSSH 5.4 ou supérieur, vous n'avez pas besoin de netcat, et vous pouvez plutôt utiliser le mode netcat intégré.
Host internal-ssh-host-proxy
ProxyCommand /usr/bin/ssh username@ssh-relay-host -W internal-ssh-host:22
Parmi les réponses présentées, celle de Zordache est la meilleure solution globale. Cependant pour la postérité, si vous voulez simplement vous connecter ad-hoc sans éditer votre configuration, utilisez l' -t
indicateur pour allouer un pseudo terminal avec l'exécution de ssh directement sur le relais.
ssh -t relay.example.com ssh internal.example.com
Vous pouvez transférer automatiquement les connexions à l'aide d'OpenSSH. Dans votre ~/.ssh/authorized_keys
fichier, vous pouvez spécifier une commande à exécuter, qui pourrait être un SSH pour une deuxième machine.
[ssh client] ----> [ssh relay server] ----> [ssh target server]
you modified authorized_keys target machine
Vous finirez par voir deux invites Password:
: une pour le serveur relais et une pour le serveur cible. Vous pouvez toujours supprimer ce comportement à l'aide de certificats.