Voici mon scénario :
- L'hôte C n'est pas accessible depuis A.
- L'hôte B est accessible depuis A.
- L'hôte C est accessible depuis B.
- B et C ont tous deux
~/.ssh/id_rsa.pub
(de A) enauthorized_keys
- B ne dispose pas de la clé privée (
~/.ssh/id_rsa
), car cela constituerait un risque pour la sécurité (la clé est personnelle). - comme B n'a pas la clé privée, il n'est pas possible de se connecter à C à partir de celle-ci
Comment puis-je utiliser la clé de l'hôte A pour me connecter à l'hôte C ? Est-ce possible ? Je crains que non.
(similaire mais différent de cette question )
EDITAR
Ce dont j'ai besoin, c'est d'un moyen de fournir, à la volée (stdin ou similaire), la clé privée au ssh hop en B, sans qu'il ne touche jamais le système de fichiers en B. Est-ce possible ?
0 votes
Faire un tunnel ssh sur l'hôte B.
0 votes
Vous dites "B ne dispose pas de la clé privée (~/.ssh/id_rsa), car cela constituerait un risque pour la sécurité". Pourquoi ? Y a-t-il plusieurs utilisateurs qui se connectent à le même compte en B ? Est-il possible de créer plusieurs comptes en B (un par utilisateur) afin d'avoir des clés privées en B également ?
0 votes
@MrShunz pas au même utilisateur, mais plusieurs utilisateurs peuvent devenir root ...
0 votes
@IporSircer cool ! Comment ? Attention : la clé privée n'est pas dans l'hôte B.
0 votes
@IporSircer c'est ce que je pensais au début, mais si j'ai bien compris, il ne peut pas se connecter de B à C via les clés.
0 votes
Je ne comprends pas pourquoi la réponse à la question liée ne s'applique pas également. Il suffit d'utiliser le transfert d'agent.
0 votes
@MrShunz : c'est pourquoi il devrait créer un tunnel sur l'hôte B vers l'hôte C, puis il peut ssh de A à C via le tunnel créé et en utilisant la clé privée sur l'hôte A.
0 votes
@IporSircer bien sûr ! Mais s'il peut déjà se connecter de B à C alors c'est un non problème. C'est la solution proposée sur la réponse en lien. C'est pourquoi j'ai supposé qu'il ne peut pas se connecter de B à C, en citant le PO "puisque B ne possède pas la clé privée, il n'est pas possible de se connecter à C à partir de lui".
0 votes
Faire en sorte que ssh tunnelise vers le port 22 de l'hôte C ne signifie pas qu'il est connecté. C'est seulement un portforward où il peut faire une connexion ssh de l'hôte A à l'hôte B directement. Tapez
man ssh
pour en savoir plus sur les tunnels ssh. Le tunnel ne tente de se connecter à l'hôte C que lorsqu'il commence à utiliser le tunnel. Il peut également transférer le port 80 ou tout autre port. C'est seulement un transfert de port, pas une connexion authentifiée.