Zastanawiałem się, czy istnieje sposób na zmianę domyślnego katalogu, w którym się umieszczam po SSH na moim serwerze Ubuntu.
99% czasu, kiedy loguję się na mój serwer, chodzi o dostęp do plików w określonym katalogu:
/var/www/websites
Czy istnieje plik konfiguracyjny, który mogę edytować, aby upewnić się, że po zalogowaniu loguję się do tego katalogu?
.profile
zamiast.bashrc
, ale zależy to od twojego przypadku użycia..profile
jest wykonywany tylko dla loginów interaktywnych (np. powłoki), ale.bashrc
jest również wykonywany dla loginów nieinteraktywnych (np. scp, rsync itp.). Ponadto .profile jest częściej wywoływany przez powłoki, które nie są bash (np. Zsh).Jeśli używasz kluczy do logowania SSH, możesz zmienić ścieżkę, przygotowując
command=
do przed kluczem~/.ssh/authorized_keys
na zdalnym serwerze. Przykład:Można generować i używać wielu kluczy dla tego samego użytkownika. Jeden klucz na serwerze może zawierać polecenie, a drugi może nie - w ten sposób wybierasz oczekiwane zachowanie podczas logowania. Możesz po prostu zakończyć to lokalnie
~/.ssh/config
:Oto co się stanie:
lub:
źródło
$SSH_ORIGINAL_COMMAND
zamiast,/bin/bash -l
aby uruchomić narzędzia (w moim przypadku hg). Lub$SHELL
jeśli nie chcesz hardcorowo zaśmiecać. Nie wiesz, jak sprawić, by narzędzia i loginy ludzkie działały jednocześnie.Openssh sshd domyślnie akceptuje następujące zmienne środowiskowe od klienta:
Możesz użyć tego, aby wysłać wartość ze środowiska lokalnego klienta na serwer w następujący sposób:
Możesz umieścić dyrektywę SendEnv w ~ / .ssh / config, abyś nie musiał dołączać jej do wiersza poleceń.
Jeśli umieścisz następujące elementy w ~ / .profile (aby wpływać tylko na loginy interaktywne, użyj .profile, aby wpłynąć na wszystkie loginy, użyj .bashrc):
Następnie automatycznie zmieni katalog na katalog określony w zmiennej środowiskowej podczas logowania, jeśli jest określony i jeśli jest to katalog.
źródło
LC_*
lewę