O login é o conceito principal no jargão - login shell.
Existem quatro etapas abstraídas para descrever o trabalho do Linux: Init, Getty, Login, Shell.
Aqui, login é um programa que obtém o nome de usuário como parâmetro e solicita ao usuário a senha.
No lado local:
vim /tmp/shell.sh
shopt login_shell
No lado do servidor (meu servidor vps):
vim /tmp/shell.sh
shopt login_shell
1. shell de login não interativo
formato geral: ssh example.com <my-script-which-is-stored-locally
ssh root@vps_ip < /tmp/shell.sh
Pseudo-terminal will not be allocated because stdin is not a terminal.
login_shell on
Mais claramente
ssh -t -t root@vps_ip < /tmp/shell.sh
Last login: Wed Mar 8 03:16:00 2017 from vps_ip
root@localhost:~$
root@localhost:~$ shopt login_shell
login_shell on
O intérprete na divisão local ssh -t -t root@vps_ip < /tmp/shell.sh
em duas partes.
1.ssh -t -t root @ vps_ip
programa de login aceita root como usuário no vps, logado.
2./tmp/shell.sh
o script no lado local passou como um parâmetro para o interpretador no lado remoto e foi executado.
É shell de login não interativo durante o processo.
2. shell não-interativo não-login
formato geral: ssh example.com my-script-que-é-armazenado-na-máquina remota
debian8@hwy:~$ssh root@vps_ip '/bin/bash /tmp/shell.sh'
login_shell off
debian8@hwy:~$
É um shell não-interativo não interativo durante o processo.
Algum truque de hack pode fazer com que seja exibido como shell de login.
debian8@hwy:~$ssh root@vps_ip '/bin/bash --login /tmp/shell.sh'
login_shell on
debian8@hwy:~$
O servidor vps não será logado após todo o comando raiz ssh @ vps_ip '/ bin / bash --login /tmp/shell.sh' ser executado.
O login_shell em não exibia nenhum significado, ele era logado, mas a conexão fechada do servidor vps foi encerrada.
Conclusões de Gilles sobre shell de login não interativo e não interativo O shell não-login está correto.