configuration ssh pour plusieurs sauts plus «sudo su»
J'ai une configuration particulière qui nécessite cette séquence d'étapes:
ssh me@host1
ssh me@host2
sudo su otheruser
J'ai:
- une clé ssh sur mon ordinateur portable qui me permet de
ssh me@host1 - une clé ssh sur host1 qui me permet de
ssh me@host2.
Je n'ai pas la permission de ssh otheruser@host2.
Mon objectif est: puis-je automatiser cela? De préférence dans le fichier ~ / .ssh / config de mon ordinateur portable, je peux donc simplement faire:
ssh otheruser
... et laisser la configuration s'occuper des détails, idéalement y compris le mot de passe?
Je peux déjà obtenir 2/3 du chemin avec la configuration ssh suivante:
Host host1
HostName host1.example.com
Host host2
HostName host2.example.com
Host mostly_there
HostName host2.example.com
ProxyJump host1 host2
Ce qui précède me le permet ssh mostly_theremais je dois encore le faire sudo su otheruser.
Réponses
Vous pouvez utiliser ceci dans .ssh / config:
HOST host1
user me
HOST host2
USER me
ProxyCommand ssh host1 -W %h:%p
HOST otheruser
USER me
ProxyCommand ssh host1 -W %h:%p
RemoteCommand sudo su -c '/bin/bash -i' otheruser
Pour vous connecter à host2 avec un autre utilisateur, utilisez simplement:
ssh otheruser
Il a actuellement l'inconvénient de ne pas être un shell interactif complet, mais cela pourrait être corrigé par une meilleure invocation que /bin/bash -i
Si vous avez root, vous pouvez déployer votre clé publique sur otheruserles authored_keys de et vous connecter sans utiliser de mot de passe. Après avoir changé pour otheruserfaire ceci:
mkdir -p ~/.ssh
et mettez votre clé publique dans ~ / .ssh / authorized_keys. Vous devriez maintenant pouvoir vous connecter à distance otherusersimplement en le faisant ssh otheruser@host.