web-dev-qa-db-fra.com

Commande unique pour se connecter à SSH et exécuter le programme?

Existe-t-il un moyen de structurer une seule commande pour vous connecter via SSH à un serveur distant et exécuter un programme sur le shell de connexion à distance?

Dans le manuel OpenSSH, il indique "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 se connectera au serveur distant, affichera l'état de la boîte aux lettres, puis vous renverra au shell local. Existe-t-il un moyen de rester sur le shell distant après avoir affiché l'état du courrier?

En outre, ssh user@server [command] 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, en ne finissant que par une commande logout spécifique (comme dans une session SSH normale) )?

Je voudrais éventuellement pouvoir mettre une telle commande comme alias dans le .bashrc local, afin qu'elle puisse être exécutée rapidement si vous le souhaitez. Un exemple serait de se connecter via SSH à un serveur distant et d'ouvrir mutt sur le serveur distant pour lire ou envoyer des e-mails.

63
user981178

As-tu essayé ssh -t user@server "mail && bash" (ou remplacez bash par le Shell que vous aimez)?

Le -t est nécessaire pour créer un pseudo-tty pour bash à utiliser comme un shell interactif.

98
jsbillings