Como posso impedir que a conexão SSH seja fechada pelo servidor para um usuário com shell nologin?

4

Informação básica: Sistema operacional do servidor: CentOS 6.3 Ferramenta de cliente: PuTTY

Eu faço SSH no meu servidor usando o PuTTY. Eu adicionei uma conta com o shell / sbin / nologin. Quando eu fizer logon nessa conta (selecionando "nunca" fechar a janela ao sair), o console diz "Esta conta não está disponível atualmente" e o PuTTY solicita "Conexão fechada pelo host remoto".

Mas espero que o servidor diga apenas "conta não disponível" sem fechar a conexão, para que eu ainda possa fazer o tunelamento por essa conexão.

Eu também notei que para usuários normais / bin / bash, ao digitar exit, algumas vezes a conexão é fechada, algumas vezes o servidor diz "LOGOUT" mas ainda conectado (ainda posso tunelamento por ele).

Então, como posso garantir que uma conexão não seja fechada para uma conta de shell do nologin?

    
por limilaw 06.01.2013 / 15:03

2 respostas

4

Uma conta com /usr/sbin/nologin como seu shell tem permissão para definir o encaminhamento de porta. No entanto, se você tentar executar um comando shell, a conexão será encerrada à força. A correção é não executar um comando shell. Com o OpenSSH (a implementação SSH em quase todos os sistemas Unix / Linux não incorporados), passe a opção -N para o cliente SSH.

ssh -N -L 1234:somehost:5678 [email protected]

Com PuTTY, marque “Não inicie um shell ou comando em tudo ” na seção Conexão > Guia SSH.

    
por 06.01.2013 / 21:46
3

Do homem ssh:

The session terminates when the command or shell on the remote machine exits and all X11 and TCP connections have been closed.

Eu acho que a maneira mais fácil (mas não a única) é fazer / bin / cat como o shell de log. Hack sujo.

    
por 06.01.2013 / 15:41

Tags