Je voudrais pouvoir exécuter automatiquement une commande sur un hôte distant chaque fois que je me connecte à cet hôte, mais dans la session SSH interactive actuelle.
Quelque chose comme
ssh user@remotehost [run do.sh]
d'où do.sh
vient quelques tâches d'entretien ménager, puis se rattache à une screen
session (actuellement, je lance do.sh
manuellement après la connexion à l'hôte).
Je ne veux pas l'ajouter à .bashrc
car je me connecte à cet hôte à partir d'autres machines et je ne veux do.sh
pas exécuter lorsque je me connecte à partir de là, j'ai donc besoin que ce soit facultatif.
bash
shell
command-line
ssh
Jim Farkas
la source
la source
ssh user@remotehost /path/to/do.sh
? Si cela fonctionne, vous pouvez même l'aliaser dans .ssh / config ou votre .bashrc personnelRéponses:
Vous pouvez essayer quelque chose comme ceci:
comme suggéré ici: /server/167416/change-directory-automatically-on-ssh-login
Ou vous pouvez essayer d'utiliser l'option 'LocalCommand' dans sshd_conf (ou ~ / .ssh / config) comme décrit dans la page de manuel officielle: http://unixhelp.ed.ac.uk/CGI/man-cgi?ssh+1
la source
Une partie du puzzle: en supposant OpenSSH, le
ssh
client définira la variable d'environnement suivante:Vous pouvez donc utiliser ces informations pour savoir d' où vient votre connexion .
la source