web-dev-qa-db-fra.com

Comment exécuter une commande lors de la connexion?

J'ai besoin d'exécuter la commande suivante (avec de vrais paramètres) après la connexion:

ssh -f [email protected] -L 54321:example.com:54321 -N

J'en ai besoin uniquement pour mon utilisateur, pas pour tous les utilisateurs de la machine. De plus, j'ai besoin de savoir si je me connecte via l'interface graphique ou via SSH à un terminal Shell simple. J'aimerais même savoir comment faire cela sur des machines sans interface graphique.

Où devrais-je mettre la ligne ci-dessus pour être exécuté comme expliqué?

41
Baruch

L'ajout de la commande à la fin de ~/.profile devrait faire l'affaire (où ~ représente votre répertoire personnel).

Non ~/.bashrc, ce qui le remettrait en marche à chaque démarrage d'un shell bash. En revanche, .profile est uniquement exécuté par des interpréteurs de commandes interactifs . Voir man bash et man sh pour plus d'informations.

Notez que cela ne s’exécutera pas uniquement pour les connexions à l’interface graphique et SSH, mais également pour toutes les connexions (ou du moins pour toutes les connexions interactives), y compris lorsque vous vous connectez à console virtuelle .

66
Eliah Kagan