fallback script sshd_config

0

Existe uma maneira de executar um script como:

cp /etc/ssh/sshd_config.orginal /etc/ssh/sshd_config
reboot

se meu /etc/ssh/sshd_config falhar?

Por que preciso disso?

Bem, às vezes, quando eu edito o arquivo, não consigo conexão ssh com meu usuário root no meu computador. Que é uma questão enorme quando estou a 200 milhas de distância do meu computador!

Atualmente, quando estou editando o arquivo, ativo um cron:

*/10 * * * * /usr/bin/ssh_replace.sh

que executa o script acima, mas isso é muito estressante, pois tenho que desativá-lo quando tiver terminado e quando quiser começar a editá-lo.

    
por maxisme 18.03.2015 / 22:10

2 respostas

1

Eu acredito que o método que você já usa é o único que está realmente funcionando. O principal problema é que, se a configuração do daemon ssh está falhando, como o servidor deveria saber que está falhando?
Teoricamente, você pode escrever um script que substitua a configuração defeituosa por uma versão de backup correta, mas isso só é útil se o servidor pode detectar que a configuração está falhando. Por exemplo, se o daemon ssh falhar, o processo será cancelado, o que pode significar que é hora de colocar o backup no lugar. Entretanto, você pode fazer ajustes que afetam negativamente a conectividade ssh enquanto o daemon ainda permanece ativo. Isso é algo que você não pode detectar e, portanto, o backup não será copiado.

    
por wie5Ooma 18.03.2015 / 23:50
0

O SSH é iniciado usando o Upstart e usa a opção respawn do Upstart para reiniciá-lo quando o processo morrer. Portanto, você pode tentar detectar quando o trabalho de SSH atingiu o limite de respawn e sobrescreva a configuração com uma configuração válida. Por exemplo:

# cat /etc/init/ssh-safe.conf
start on stopped ssh RESULT="failed" PROCESS="respawn"
script
  cp /etc/ssh/sshd_config.original /etc/ssh/sshd_config
  start ssh RESTARTED_BY_WATCHDOG=1 || true
end-script
    
por muru 19.03.2015 / 07:32