A resposta de Mike provavelmente funcionará. Mas vale ressaltar que você pode realizar isso cuidadosamente selecionando quais arquivos de inicialização colocar os itens detalhados. Na página de manual do bash:
Quando o bash é chamado como um shell de login interativo ou como um shell não interativo com a opção --login, ele primeiro lê e executa comandos do arquivo / etc / profile, se esse arquivo existir. Depois de ler esse arquivo, ele procura ~ / .bash_profile, ~ / .bash_login e ~ / .profile, nessa ordem, e lê e executa comandos do primeiro que existe e é legível. A opção --noprofile pode ser usada quando o shell é iniciado para inibir esse comportamento.
Quando um shell interativo que não é um shell de login é iniciado, o bash lê e executa comandos de ~ / .bashrc, se esse arquivo existir. Isso pode ser inibido usando a opção --norc. A opção --rcfile file forçará o bash a ler e executar comandos do arquivo em vez de ~ / .bashrc.
As ferramentas sftp / scp iniciam um shell interativo sem logon, portanto, o .bashrc será originado. Muitas distribuições usam o .bashrc como .bash_profile ou vice-versa, para que fique confuso. Um bom truque para testar a limpeza do seu ambiente de login é fazer o ssh com um comando, que simula da mesma maneira que o scp / sftp connect. Por exemplo: ssh myhost /bin/true
mostrará exatamente o que o scp / sftp vê quando eles se conectam.
Uma demonstração simples:
insyte@mazer:~$ echo "echo Hello from .profile" > .profile
insyte@mazer:~$ echo "echo Hello from .bashrc" > .bashrc
sazerac:~ insyte$ ssh mazer /bin/true
Hello from .bashrc
sazerac:~ insyte$
insyte@mazer:~$ rm .bashrc
sazerac:~ insyte$ ssh mazer /bin/true
sazerac:~ insyte$
O primeiro teste fará com que scp / sftp / rsync etc. quebre. A segunda versão funcionará bem.
.bashrc
que seria fonte parascp
oussh host command
.