Existe-t-il un moyen de structurer une commande unique pour se connecter via SSH à un serveur distant et exécuter un programme sur le shell de connexion distant?
Dans le manuel OpenSSH, il est écrit "Si la commande est spécifiée, elle est exécutée sur l'hôte distant au lieu d'un shell de connexion". Ainsi, par exemple, ssh user@server mail
ouvrira une session sur le serveur distant, affichera l’état de la boîte aux lettres, puis vous renverra au shell local. Est-il possible de rester sur le shell distant après avoir affiché l'état du courrier?
De plus, ssh user@server [command]
cela ne semble pas fonctionner si la commande est un programme, par exemple vim ou mutt. Existe-t-il un moyen de se connecter au shell distant et d'exécuter un programme tout en restant dans le shell distant pendant le programme et après avoir quitté le programme, pour ne sortir que d'une logout
commande spécifique (comme dans une session SSH normale)?
Je voudrais éventuellement pouvoir mettre une telle commande comme alias dans le fichier local .bashrc, afin qu’elle puisse être exécutée rapidement si vous le souhaitez. Un exemple serait de vous connecter via SSH à un serveur distant et d’ouvrir mutt sur le serveur distant pour lire ou envoyer un courrier électronique.
ssh remote@server mail ; ssh remote@server
? De même, toute commande exécutée à distance nécessitant un terminal ne survivra pas / ne fonctionnera pas avec ssh, n'est-ce pas?Réponses:
Avez-vous essayé
ssh -t user@server "mail && bash"
(ou remplacez-lebash
par la coque de votre choix)?Le
-t
est nécessaire pour créer un pseudo-tty que bash utilisera comme shell interactif.la source
mutt
intérieur d’untmux
ouscreen
, puis je pourrai attacher et rattacher à volonté, en plus de pouvoir exécuter autant de coquillages supplémentaires que je le souhaiterais.exit
lieu delogout
. Je suis incapable de le tester encore avec Mutt (ou similaire).-t
option génère- t-elle des problèmes de sécurité? Je n'ai pas utilisé cela auparavant.&&
avec un;
?