1 votes

Sftp à travers un autre serveur ssh (comme un proxy)

Lorsque j'accède à un serveur depuis mon réseau local, je dois d'abord me connecter à mon serveur principal (tous les ports vont vers cette machine) et une fois sur mon serveur principal, je dois me connecter à ma machine suivante (qui n'est disponible que depuis mon réseau local).

Exemple:

name@mylaptop:~$ ssh name@example.com
[Entrer le mot de passe]
Connecté
name@mainserver:~$ ssh 192.168.0.1
[Entrer le mot de passe]
Connecté
name@otherserver:~$

Mon objectif est maintenant de me connecter avec FileZilla au serveur principal et de "proxiyng" vers le "otherserver". Comment indiquer à FileZilla d'utiliser une commande au début? Est-ce même possible?

3voto

AlexMF Points 46

Je sais que cette question a été posée il y a quelques mois - mais en cherchant des réponses à une exigence similaire, j'ai trouvé l'utilisation de la commande ProxyCommand d'OpenSSH très utile.

J'ai quelque chose comme la configuration suivante dans mon fichier de configuration client local (j'avais en fait besoin de trois sauts pour atteindre ma cible : serveur externe-> routeur -> boîte cible sur un réseau privé)

Dans le fichier ~/.ssh/config

Hôte monserveurexterne
  Utilisateur nomutilisateur1
  IdentityFile 
  Nom d'hôte nomcompletdemonserveurexterne

Hôte monrouteur
  Nom d'hôte nomcompletdemonrouteur
  Utilisateur root
  IdentityFile 
  ProxyCommand ssh -q monserveurexterne nc %h %p

Hôte macible
  Nom d'hôte nomprivédemacible
  Utilisateur nomutilisateur2
  IdentityFile 
  ProxyCommand ssh -q monrouteur nc %h %p

Cette chaîne signifie que je peux simplement taper

ssh macible

et être envoyé à travers les sauts requis.

Tous les fichiers clés sont stockés localement, donc vous n'avez pas besoin de mettre des fichiers sur des serveurs externes. La même configuration fonctionne même pour scp:

scp  macible:

Un certain nombre d'approches alternatives pour le proxy ssh sont documentées sur la page wikibooks suivante: http://en.wikibooks.org/wiki/OpenSSH/Cookbook/Proxies_and_Jump_Hosts

0voto

hololeap Points 1181

Vous pourriez configurer le renvoi de port vers votre serveur interne.

name@mainserver:~$ sudo iptables -t nat -A PREROUTING -i  -p tcp --dport 2222 -j DNAT --to-dest :22

Cela routera les connexions entrantes sur le port 2222 du serveur principal vers le port 22 du serveur interne. Ensuite, vous vous connecteriez simplement à example.com sur le port 2222.

Une autre option consiste à utiliser le renvoi de port SSH.

name@mylaptop:~$ ssh name@example.com -L 2222::22

Tant que cette session SSH est ouverte, le port 2222 sur votre ordinateur local sera redirigé vers le port 22 du serveur interne. Ensuite, vous vous connecteriez à localhost sur le port 2222.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X