Odpowiedzi:
Wprowadź polecenia ~/.bashrc
. Wszystko tam jest wykonywane przy każdym logowaniu.
Jeśli potrzebujesz komend do uruchamiania tylko podczas logowania przez ssh (ale nie przy logowaniu fizycznym), prawdopodobnie możesz przetestować obecność SSH_CONNECTION
zmiennej środowiskowej i uruchamiać komendy tylko wtedy, gdy ona istnieje.
Wystarczy umieścić to w ~ / .bashrc lub /etc/bash.bashrc, jeśli chcesz, aby dla wszystkich użytkowników:
if [[ -n $SSH_CONNECTION ]] ; then
echo "I'm logged in remotely"
fi
screen
, mógłbym użyć twojej odpowiedzi i umieścić screen
ją zamiast echa. Problem polega na tym, że zakończenie sesji ekranu powróci do monitu SSH zamiast wylogowania. Jednak napisanie tego komentarza dało mi odpowiedź: dodaj logout
polecenie po screen
poleceniu.
exec command
zastąpi bieżącą powłokę tym, co uruchomisz.
Alternatywnie możesz określić polecenie, które zostanie uruchomione podczas wywoływania ssh
:
$ ssh -t server 'cmd; exec bash -l'
Ostatnie polecenie na liście powinno rozpocząć interaktywną sesję w preferowanej powłoce. Jeśli masz wiele poleceń do uruchomienia, rozważ utworzenie pliku skryptu na serwerze SSH.
Właściwie ~/.ssh/rc
jest to właściwe miejsce dla Ciebie, aby dodać polecenie do uruchomienia, gdy ty się zalogować, zamiast każdego użytkownika systemu.
~/.ssh/rc
Commands in this file are executed by ssh when the user logs in,
just before the user's shell (or command) is started. See the
sshd(8) manual page for more information.
man bash
).