Linux ssh (bug / broken) continua funcionando mesmo quando o serviço está parado no linux do Ubuntu?

0

Aqui está todo o cenário:

  1. instalado ssh apt-get install ssh
  2. criou um novo usuário (sei que não precisei)
  3. logado no sistema via ssh usando o novo usuário
  4. modificou o / etc / ssh / sshd_config para permitir login root
  5. emitiu o comando systemctl status ssh
  6. mostrou que o serviço estava em execução
  7. emitido systemctl stop ssh (Eu sei que poderia ter usado o serviço cmd)
  8. Eu ainda estava logado via ssh! não tenho certeza de como isso funciona
  9. abriu uma nova instância putty e tentou se conectar e disse que o serviço não estava acessível / expirou
  10. emitido systemctl start ssh e tentou logar como usuário com nova instância putty e funcionou

Eu estava me perguntando por que não derrubou a primeira instância (novo login do usuário via ssh)? foi porque quando eu inicialmente logado, o ssh aceitou a conexão na porta 22 e abriu uma nova porta de soquete web (multi-thread) e atribuiu minha conexão a essa porta e estava escutando outra conexão na porta 22 e quando eu loguei depois de parar o serviço disse que expirou?

Tenho certeza que o ssh não rastreia a porta aleatória que ele abre, você diria que ele pode ser um bug (não quebrado). O programa c também não deve acompanhar o ssh e também suspender as instâncias quando o serviço ssh for interrompido. algum pensamento?

    
por Hassan Ahmed 20.01.2017 / 17:19

1 resposta

5

Isso é intencional. Quando você se conecta a um sistema usando SSH, o daemon no sistema de destino gera um novo processo sshd , ou mesmo dois (um em execução como root , o outro como o usuário de destino). A sessão SSH é tratada por este novo processo, não pelo original. A partir do manpage:

sshd listens for connections from clients. It is normally started at boot from /etc/init.d/ssh (or /etc/init/ssh.conf on systems using the Upstart init daemon). It forks a new daemon for each incoming connection. The forked daemons handle key exchange, encryption, authentication, command execution, and data exchange.

Quando você para o serviço, somente o daemon principal é interrompido; os daemons que estão gerenciando sessões continuam em execução. Isso é o que permite que você reinicie o servidor SSH sem perder suas sessões - isso é particularmente útil quando você erra a configuração e o servidor não reinicia ...

    
por 20.01.2017 / 17:23