GNU/Linux >> Tutoriels Linux >  >> Linux

Serveur relais SSH avec OpenSSH

Solution 1 :

Bien sûr; utilisez simplement le transfert/tunneling de port SSH. Démarrez une connexion ssh vers la machine "proxy" à l'aide de la commande suivante :

ssh -L$LOCALPORT:$REMOTEHOST:$SSHPORT $PROXYHOST
  • $PROXYHOST  :la machine à laquelle vous avez un accès SSH
  • $REMOTEHOST :la machine à laquelle $PROXYHOST peut se connecter, mais pas vous. Utilisez un nom d'hôte ou une IP qui $PROXYHOST peut utiliser pour 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 continue de fonctionner. Vous pouvez également ajouter -N à la commande afin que cette connexion n'affiche pas de 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 transféré au $REMOTEHOST le port SSH de.

Solution 2 :

Si vous souhaitez mettre à jour la configuration de votre client, vous pouvez configurer votre client pour qu'il utilise votre boîtier de passerelle comme proxy. Votre boîte de relais aura besoin de netcat installé, et pour de meilleurs résultats, vous voudrez avoir une configuration d'authentification basée sur une clé.

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 [email protected] "/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 depuis votre ordinateur client.

Si l'hôte proxy SSH possède le client OpenSSH 5.4 ou supérieur, vous n'avez pas besoin de netcat, et à la place, vous pouvez utiliser le mode netcat intégré.

Host internal-ssh-host-proxy
    ProxyCommand /usr/bin/ssh [email protected] -W internal-ssh-host:22

Solution 3 :

Parmi les réponses présentées, Zordache est la meilleure solution globale. Cependant pour la postérité, si vous souhaitez simplement vous connecter ad-hoc sans modifier votre config, utilisez le -t drapeau pour allouer un pseudo terminal avec l'exécution de ssh directement sur le relais.

ssh -t relay.example.com ssh internal.example.com

Solution 4 :

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 peut être un SSH vers une deuxième machine.

[ssh client] ----> [ssh relay server] ----> [ssh target server]
    you          modified authorized_keys      target machine

Ce que vous finirez par voir, ce sont deux invites pour Password: :un pour le serveur relais et un pour le serveur cible. Vous pouvez toujours supprimer ce comportement en utilisant des certificats.


Linux
  1. Meilleures pratiques de sécurité OpenSSH

  2. Comment installer le serveur SSH sur Ubuntu / Debian avec OpenSSH

  3. Comment sécuriser le service SSH avec Port Knocking

  4. SSH avec des clés autorisées à un système Ubuntu avec un répertoire personnel crypté ?

  5. Nom d'utilisateur et mot de passe en ligne de commande avec sshfs

Correction d'une erreur de tuyau cassé avec une connexion SSH

Comment verrouiller votre serveur CentOS avec IPTables

Générer des clés RSA avec SSH en utilisant PuTTYgen

Connectez-vous à un serveur Linux avec une clé privée SSH sur un client Windows

Comment sécuriser SSH avec Fail2Ban

Connectez-vous avec OpenSSH (Windows)