Eu gostaria de poder executar automaticamente um comando em um host remoto toda vez que fizer login nesse host, mas dentro da atual sessão SSH interativa.
Algo como
ssh user@remotehost [run do.sh]
onde do.sh
realiza algumas tarefas de limpeza e, em seguida, reconecta a uma screen
sessão (atualmente eu corro do.sh
manualmente depois de fazer login no host).
Não quero adicioná-lo .bashrc
porque faço login neste host de outras máquinas e não quero do.sh
executar quando faço o login a partir daí, por isso preciso que seja opcional.
bash
shell
command-line
ssh
Jim Farkas
fonte
fonte
ssh user@remotehost /path/to/do.sh
? Se funcionar, você pode até mesmo apelido lo em .ssh / config ou seu .bashrc personnalRespostas:
Você pode tentar algo como isto:
conforme sugerido aqui: /server/167416/change-directory-automatically-on-ssh-login
Ou você pode tentar usar a opção 'LocalCommand' em sshd_conf (ou ~ / .ssh / config), conforme descrito na página de manual oficial: http://unixhelp.ed.ac.uk/CGI/man-cgi?ssh+1
fonte
Uma parte do quebra-cabeça: assumindo o OpenSSH, o
ssh
cliente definirá a seguinte variável de ambiente:Portanto, você pode usar essas informações para descobrir de onde vem sua conexão .
fonte