Fiquei me perguntando se existe uma maneira de alterar o diretório padrão em que fui colocado depois do SSH no meu servidor Ubuntu.
99% do tempo em que estou entrando no meu servidor, é para acessar arquivos em um diretório específico:
/var/www/websites
Existe um arquivo de configuração que eu possa editar que garanta que eu seja colocado diretamente nesse diretório quando eu fizer o login?
.profile
não no.bashrc
, mas isso depende do seu caso de uso..profile
é executado apenas para logins interativos (por exemplo, shell), mas.bashrc
também é executado para logons não interativos (por exemplo, scp, rsync, etc.). Além disso, é mais provável que .profile seja chamado por shells que não são do bash (por exemplo, zsh).Se você usar chaves para login SSH, em seguida, você pode alterar o caminho, antecedendo
command=
a antes de uma chave em~/.ssh/authorized_keys
em seu remoto servidor. Exemplo:É bom gerar e usar várias chaves para o mesmo usuário. Uma chave no servidor pode conter o comando que a outra não - dessa maneira, você seleciona o comportamento esperado no momento do login. Você pode simplesmente encerrar com local
~/.ssh/config
:Isto é o que irá ocorrer:
ou:
fonte
$SSH_ORIGINAL_COMMAND
vez de/bin/bash -l
fazer as ferramentas funcionarem (no meu caso, hg). Ou$SHELL
se você não deseja codificar com firmeza o bash. Não sei como fazer com que ferramentas e logins humanos funcionem.O Openssh sshd, por padrão, aceita estas variáveis de ambiente do cliente:
Você pode usar isso para enviar um valor do ambiente local do cliente para o servidor como este:
Você pode colocar a diretiva SendEnv em ~ / .ssh / config para não precisar incluí-la na linha de comando.
Se você colocar o seguinte em seu ~ / .profile (para afetar apenas logons interativos, use .profile, para afetar todos os logons, use .bashrc):
Em seguida, ele mudará automaticamente o diretório para o especificado na variável de ambiente quando você efetuar login, se for especificado e se for um diretório.
fonte
LC_*
truque