Você pode tentar algo assim:
ssh server -t "do.sh; bash --login"
como sugerido aqui: link
Ou você pode tentar usar a opção 'LocalCommand' em sshd_conf (ou ~ / .ssh / config) conforme descrito na página de manual oficial: link
Gostaria de poder executar automaticamente um comando em um host remoto sempre que eu fizer login nesse host, mas dentro da sessão SSH interativa atual.
Algo como
ssh user@remotehost [run do.sh]
onde do.sh
realiza algumas tarefas de manutenção e, em seguida, reconecta-se a uma sessão screen
(atualmente executo do.sh
manualmente depois de fazer login no host).
Eu não quero adicioná-lo a .bashrc
porque eu faço login neste host de outras máquinas e não quero que o do.sh
seja executado quando eu fizer login a partir dele, então eu preciso que ele seja opcional. / p>
Uma parte do quebra-cabeça: assumindo o OpenSSH, o cliente ssh
definirá a seguinte variável de ambiente:
SSH_CONNECTION
Identifies the client and server ends of the connection. The variable contains four space-separated values: client IP address, client port number, server IP address, and server port number.
Você pode usar essas informações para descobrir de onde vem sua conexão .
Tags command-line ssh bash shell