De acordo com man sshd
:
LOGIN PROCESS
When a user successfully logs in, sshd does the following:
<...>
9. Runs user's shell or command. All commands are run under the
user's login shell as specified in the system password data‐
base.
Não está claro, porém, "executar sob o shell de login do usuário" significa literalmente "shell de login, como em bash -l
"? Minhas experiências mostram que não, não é:
$ ssh u@h shopt -q login_shell && echo 'Login shell' || echo 'Not login shell'
Not login shell
Eu não posso ver por que isso é assim? Isso resulta em comandos sendo executados, não obtendo o ambiente usual, pois apenas faz login no shell. Isso é complicado.