Respostas:
Isso é específico do OpenSSH a partir da versão 3.9 em diante.
Para cada nova conexão, o sshd será executado novamente, para garantir que todas as randomizações em tempo de execução sejam geradas novamente para cada nova conexão. Para que o sshd se reexecute, ele precisa conhecer o caminho completo para si mesmo.
Aqui está uma citação das notas de versão do 3.9:
- Faça o sshd (8) se reexecutar ao aceitar uma nova conexão. Essa medida de segurança garante que todas as randomizações em tempo de execução sejam reaplicadas para cada conexão em vez de uma vez, durante a vida útil do processo principal. Isso inclui mapeamentos mmap e malloc, endereçamento de biblioteca compartilhada, ordem de mapeamento de biblioteca compartilhada, cookies ProPolice e StackGhost em sistemas que suportam essas coisas
De qualquer forma, geralmente é melhor reiniciar um serviço usando o script init (por exemplo /etc/init.d/sshd restart
) ou usando service sshd restart
. Se nada mais, o ajudará a verificar se o serviço será iniciado corretamente após a próxima reinicialização ...
( resposta original, agora irrelevante: meu primeiro palpite seria que /usr/sbin
não está no seu $ PATH. )
Isso evita que alguém injete um sshd
programa em algum lugar de um dos diretórios do seu PATH
e que você o execute inadvertidamente. Este post de 2004 já descreve o problema.