Est-il possible de tunneler le trafic https via le tunnel ssh avec des programmes ssh standard?

12

Puis-je rediriger le trafic https (d'un dépôt svn) via ssh-tunnel.

Le problème est que les services qui utilisent https ne fonctionnent pas si je crée juste un tunnel pour écouter avec par exemple:

ssh -L 12345:server.com:443 localhost

Dois-je faire autre chose? L'objectif est de tunneler https://PROJECT.googlecode.com/svn/ où PROJECT est le nom du projet.

Juha
la source

Réponses:

12

La connexion HTTPS peut être redirigée via la redirection de port SSH - cependant la validation du certificat SSL / TLS échouera dans les cas où le nom d'hôte ne correspond pas:

Vous vous connectez à https: // localhost: 12345 mais le certificat de serveur contient le nom server.com.

Au lieu de transmettre directement la connexion HTTPS, j'exécuterais un proxy HTTP (s) / SOCKS sur l'ordinateur distant auquel vous ouvrez la connexion SSH. Configurez ensuite le programme que vous souhaitez créer un tunnel pour utiliser ce proxy via la redirection de port. Ce serait une solution propre.

Mise à jour: Il semble que SVN puisse utiliser des proxys HTTP mais pas des proxys SOCKS. Si vous le souhaitez, vous avez besoin d'un "socksifier" supplémentaire sur votre système local. Voir Serverfault.com: Comment puis-je définir un proxy pour subversion avec ssh tunnel?

Robert
la source
Puis-je réellement utiliser ce type d'approche: dltj.org/article/ssh-as-socks-proxy ? Donc, dans le cas du googlecode, j'aurais un ordinateur local -> socks-computer -> googlecode. Et ce "ssh -D" serait exécuté sur l'ordinateur local: ssh -D 12345 [nom d'utilisateur] @ [socks-computer]. Maintenant, je dois dire à svn d'utiliser le proxy sur l'ordinateur local: 12345. Ai-je besoin d'autre chose?
Juha
Cool, je ne savais pas qu'OpenSSH incluait déjà un proxy SOCKS. Voir aussi ma réponse mise à jour.
Robert
6
Vous pouvez contourner le problème du certificat HTTPS en ajoutant l'hôte distant à votre fichier d'hôtes local avec l'adresse IP 127.0.0.1. Ensuite, vous pouvez réellement utiliser l' adresse remotehost: 12345 mais le trafic sera toujours dirigé vers le tunnel SSH.
Juha Palomäki
@ JuhaPalomäki vous devez ajouter ceci comme réponse
elhefe
1

Pour pouvoir contourner le problème de non-correspondance DNS du certificat lors de l'accès au serveur distant avec tunnel SSH, j'ai fait ce qui suit:

  1. Configurer un tunnel SSH dans putty pour que le port local 443 transfère le trafic vers le serveur distant (L443 : <remote.server.com>:443 )
  2. Mettre C:\Windows\System32\drivers\etc\hostsà jour le fichier pour ajouter une entrée telle que127.0.0.1 <remote.server.com>
  3. Si vous utilisez un serveur proxy HTTP (par exemple si vous travaillez à partir d'un proxy d'entreprise), contournez l' <remote.server.com>hôte du proxy système
  4. Vous pouvez maintenant accéder à l'URL du serveur distant avec https://<remote.server.com>
KunalP
la source