SSH reinicia e mata instâncias?

4

Estou tentando reiniciar o SSH no Ubuntu usando:

sudo /etc/init.d/ssh restart

mas isso só me dá:

Rather than invoking init scripts through /etc/init.d, use the service(8) utility, e.g. service ssh restart

No entanto, a execução dá:

restart: Unknown instance:

Em exibição:

ps -A | grep ssh

dá 3 instâncias.

Pergunta

Como posso saber qual é a minha instância e matar os outros? Isso permitirá que eu reinicie?

Alguém pode me ajudar com isso, por favor?

    
por Chris Edwards 30.08.2011 / 11:29

2 respostas

11

Invocar o script init.d ainda deve reiniciar o serviço:

dermot@porkboy:~$ sudo /etc/init.d/ssh restart
[sudo] password for dermot:
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service ssh restart

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the stop(8) and then start(8) utilities,
e.g. stop ssh ; start ssh. The restart(8) utility is also available.
ssh stop/waiting
ssh start/running, process 4877
dermot@porkboy:~$

'service ssh restart' funciona bem aqui (11.04). Vale a pena notar que reiniciar o sshd não irá matar as sessões SSH existentes . Quando você entra em uma caixa via SSH, o sshd gera novos processos para lidar com a sessão. Reiniciar o sshd irá matar o processo principal do daemon sshd (e iniciá-lo novamente, obviamente), mas deixará outras instâncias geradas do sshd intocadas. Você quer este comportamento porque facilita muito a vida quando você está trabalhando com servidores headless em datacenters distantes!

Agora, responda ao restante da sua pergunta. Em vez de executar 'ps -A', tente isto:

dermot@porkboy:~$ ps -ef | grep ssh
root      2522     1  0 Aug29 ?        00:00:00 sshd: dermot [priv]
dermot    2615  2522  0 Aug29 ?        00:00:04 sshd: dermot@pts/0
root      4655     1  0 10:52 ?        00:00:00 sshd: dermot [priv]
dermot    4756  4655  0 10:52 ?        00:00:00 sshd: dermot@pts/1
root      4887     1  0 10:55 ?        00:00:00 /usr/sbin/sshd -D

Isso provavelmente explica os três processos sshd que você está vendo - um para o daemon sshd principal e depois dois (pai raiz, filho dermot) por sessão. Eu sou SSHed em dois locais o tenho cinco processos. O bit pts / X refere-se ao terminal virtual em que a sessão está conectada ...

dermot@porkboy:~$ who
dermot   pts/0        2011-08-29 21:32 (williams-mb.local)
dermot   pts/1        2011-08-30 10:52 (192.168.253.109)

... nos dá uma ideia de qual sessão é qual. Então, se eu quisesse matar a sessão do meu MacBook, eu 'mataria -9 2522'.

    
por 30.08.2011 / 12:03
1

Quando você reinicia o daemon SSH com

sudo /etc/init.d/ssh restart

ou

service ssh restart

o daemon de escuta é reiniciado com novas opções de configuração (suponho que você o reinicie para que a nova configuração tenha efeito). Todas as sessões já abertas permanecem em execução com a configuração antiga. Para saber qual das sessões do ssh é sua, tente executar:

ps -ef | egrep '(ssh|PID)'

Você receberá um / usr / sbin / sshd com o PPID 1 e o UID root . Este é o daemon de escuta. Todos os outros registros sshd: user @ pts / 0 são sessões do usuário. Procure a sessão apropriada pelo nome de usuário e mate o processo para encerrar esta sessão.

Eu recomendaria fazer tudo isso na sessão tela GNU , então se você cometer um erro, você poderá reconectar e reconectar esta tela sessão.

Ou eu não entendi a pergunta certa.

    
por 30.08.2011 / 11:58

Tags