Respostas:
Coloque os comandos ~/.bashrc
. Qualquer coisa lá é executada toda vez que você faz login.
Se você precisar que os comandos sejam executados apenas ao efetuar login via ssh (mas não ao efetuar login fisicamente), provavelmente poderá testar a presença da SSH_CONNECTION
variável de ambiente e executar os comandos somente se achar que existe.
Basta colocar isso em ~ / .bashrc ou /etc/bash.bashrc se você quiser isso para todos os usuários:
if [[ -n $SSH_CONNECTION ]] ; then
echo "I'm logged in remotely"
fi
screen
, poderia usar sua resposta e colocá screen
-la em vez do eco. O problema é que o término da sessão na tela retornará ao prompt SSH em vez de sair. Apenas escrever este comentário me deu a resposta, no entanto: adicione o logout
comando após o screen
comando.
exec command
substituirá o shell atual pelo que você executar.
Como alternativa, você pode especificar um comando a ser executado durante a chamada de ssh
:
$ ssh -t server 'cmd; exec bash -l'
O último comando da lista deve iniciar uma sessão interativa no seu shell preferido. Se você tiver muitos comandos para executar, considere criar um arquivo de script no servidor SSH.
Na verdade, ~/.ssh/rc
é o lugar certo para você adicionar um comando para executar quando efetuar login, em vez de qualquer usuário do sistema.
~/.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
).