Estou tentando fazer um github-puxade um script php como um usuário www-data e estou recebendo "Falha na verificação da chave do host". Meu usuário principal tem a chave do host registrada, mas meu www-data não, pois nem tem acesso ao diretório ~/.ssh.
Ainda existe um arquivo de hosts conhecidos em todo o sistema no Ubuntu 18.04? Suponho que não seria seguro conceder ao usuário www-data acesso ao meu~/.ssh-diretório?
Responder1
Como sugerido pelo @GMaster, usar HTTPS em vez de SSH para um pull automatizado parece a escolha mais sensata. Mas, se você realmente precisa usar o protocolo ssh (por quê?), você tem algumas opções known_hosts
e credenciais:
Crie a
~/.ssh
árvore, incluindo um diretório inicialknown_hosts
atwww-data
' pré-preenchido (no meu sistema é/var/www
, mas verifique o seu em/etc/passwd
). Você mesmo pode criar o arquivo conectando e verificando a chave do host manualmente. Apenas certifique-se de que esses arquivos e diretórios tenham as permissões adequadas (geralmente 0700/0600) e propriedade.Tenha este arquivo em outro lugar (com as devidas permissões) e aponte para ele usando
-o UserKnownHostsFile=/path/to/known_hosts
Para ambas as abordagens acima, brinque com
-o StrictHostKeyChecking
várias opções e-o UpdateHostKeys
equilibre entre segurança e conveniência.Como último recurso, você pode desabilitar completamente a validação da chave do host para dados www, em
/var/www/.ssh/config
ou com opções de linha de comando-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null
. Esteja ciente das sérias implicações de segurança que isso implica.
E, reforçando o que você já suspeitava: em hipótese alguma conceda ao usuário www-data (ou qualquer outro) acesso ao seu ~/.ssh
. Lembre-se do seuprivadoas chaves também estão lá!
Responder2
Sim, existe de fato um arquivo hosts conhecido em todo o sistema, que por padrão é /etc/ssh/ssh_known_hosts
. Você pode executar man ssh_config
e pesquisar GlobalKnownHostsFile
para ver o padrão em seu sistema. Você também pode alterar o valor desta opção normalmente (com -o
), se desejar.