La configuration de mon réseau ressemble à ceci:
Désormais, Alice a accès à la passerelle SSH (uniquement la passerelle à partir de maintenant) avec:
ssh [email protected]
et le fichier de clés autorisé sur la passerelle ressemble à ceci
#/home/Alice/.ssh/authorized_keys
command="ssh -t alice@web" ssh-rsa ABCD...E== alice@somehost
donc quand Alice essaie de se connecter à la passerelle avec sa clé privée, elle se connecte en fait au serveur Web (le PC de la passerelle peut établir une connexion au serveur Web avec une clé privée sans mot de passe, afin que cela reste transparent).
La question
Comment puis-je configurer cela pour qu'Alice puisse également scp les choses sur le serveur Web?
Je sais que cela établit une connexion séparée, mais existe-t-il un moyen pour que cela fonctionne comme un ssh normal afin que même quelque chose comme ça
-R12345:localhost:22
fonctionne?
J'ai eu exactement le même problème que celui-ci mais je l'ai fait fonctionner sans tout changer radicalement.
Tout ce que j'ai fait a été d'ajouter $ SSH_ORIGINAL_COMMAND à la passerelle authorized_keys pour passer à travers tout le long de la chaîne jusqu'au serveur final.
Donc ça:
Devient:
Le -q est utilisé pour supprimer le message de connexion fermée de la machine du point final afin qu'il ne se retrouve pas dans la sortie locale si vous utilisez la redirection localement.
Vous pouvez ensuite utiliser scp comme ceci:
Cela a l'avantage supplémentaire de permettre aux utilisateurs de passer des commandes via le serveur d'extrémité et d'obtenir le résultat dans leur session locale afin qu'ils puissent les rediriger dans un fichier ou les rediriger vers un programme différent.
Par exemple:
Cela fonctionne car il semble que sshd remplisse la variable d'environnement $ SSH_ORIGINAL_COMMAND avec la commande spécifiée par le client ssh mais je ne sais pas pourquoi cela permet miraculeusement à scp de passer à la machine d'extrémité ainsi qu'aux commandes.
la source
Malheureusement, la redirection de port n'aiderait pas à copier des fichiers directement du poste de travail d'Alice vers le serveur Web à l'aide
scp
. Dans cet article SO, j'ai expliqué pourquoi ssh (et scp car il utilise les mêmes mécanismes d'authentification) ne fonctionnera pas pour les connexions transmises par port à l'aide de ssh.L'option serait de configurer un serveur VPN sur une machine faisant maintenant office de passerelle SSH, de vous y connecter, puis d'accéder directement à n'importe quelle machine derrière le pare-feu.
la source