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'.