Eu mudei de FTP com TLS para SFTP e agora aparece uma caixa de diálogo quando tento conectar dizendo Unknown Host Key para www.example.com. Em seguida, apresenta duas opções Negar e Permitir.
O que isto significa? Devo selecionar Permitir ou Negar?
Eu mudei de FTP com TLS para SFTP e agora aparece uma caixa de diálogo quando tento conectar dizendo Unknown Host Key para www.example.com. Em seguida, apresenta duas opções Negar e Permitir.
O que isto significa? Devo selecionar Permitir ou Negar?
Respostas:
O SFTP é baseado no SSH; os hosts aos quais você se conecta, assim como com o ssh, fornecerão uma chave exclusiva que permite identificá-los. Se você aceitar a chave, a qualquer momento no futuro, você se conectará ao mesmo host, a chave fornecida será verificada em relação àquela fornecida pela primeira vez (que é armazenada em $ HOME / .ssh / known-hosts) e se os dois corresponderem você não será perguntado novamente; Se, em vez disso, as duas chaves não corresponderem, você será avisado de um possível ataque (um ataque Man In The Middle, MTIM).
Então é basicamente um recurso de segurança. O SSH é baseado no TOFU (Trust On First Use). O que significa que você terá que aceitar a chave após verificar com o sysadmin que a chave apresentada é de fato deles, e então prosseguir para estabelecer a comunicação.
EDITAR:
Como verificar se estamos recebendo a chave certa, sem perguntar um sysadmin (possivelmente inexistente)? Quando você se conecta a um servidor SSH / SFTP pela primeira vez, é apresentado algo como o seguinte:
$ ssh me@remote
The authenticity of host '[remote]:22 ([192.168.1.72]:22)' can't be established.
ECDSA key fingerprint is b2:2d:52:1a:40:c2:f9:ca:9a:42:86:76:f4:0b:eb:84.
Are you sure you want to continue connecting (yes/no)?
Anote o tipo de impressão digital (ECDSA, acima) e a impressão digital em si, b2:2d:52:1a:40:c2:f9:ca:9a:42:86:76:f4:0b:eb:84
acima. Agora vá para o servidor (fisicamente ou, no caso de um VPS, para o console) e, sem necessidade sudo su
, vá para / etc / ssh. Você verá que existem muitos .pub
arquivos; um é ssh_host_ecdsa_key.pub (o tipo de impressão digital que nos foi apresentado). Agora, emita este comando:
$ ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key.pub
Sua saída deve corresponder à impressão digital que você ofereceu acima. Em caso afirmativo, você pode aceitar a impressão digital da chave na sessão ssh e prosseguir para o ssh no servidor.
Não há necessidade de importar nada do servidor: o ssh cuidará disso para você.
Esta é uma versão editada do meu guia Onde obtenho a impressão digital da chave de host SSH para autorizar o servidor?
Você deve obter uma impressão digital da chave de host SSH junto com suas credenciais do administrador do servidor. Conhecer a impressão digital da chave do host e, assim, poder verificá-la é parte integrante da proteção de uma conexão SSH. Impede ataques man-in-the-middle .
No mundo real, a maioria dos administradores não fornece a impressão digital da chave do host.
Se a ordem para obter a melhor segurança possível, você precisa se conectar ao servidor usando a maneira mais segura disponível. Tome todas as precauções possíveis para garantir a segurança de sua máquina local e uma linha para o servidor. Por exemplo, se você precisar obter a chave do host para verificar a conexão com o servidor de um site externo (por exemplo, de casa ou um cliente), mas tiver acesso físico ao site do servidor, conecte-se ao site do servidor (por exemplo, seu local de trabalho) .
Você também pode perguntar a qualquer pessoa com acesso físico ao servidor (idealmente, o administrador). A chave do host é apenas uma e, portanto, o mesmo para todos os usuários. Observe também que a impressão digital da chave do host é gerada apenas a partir de uma parte de chave pública da chave do host. Portanto, não é secreto e pode ser enviado com segurança através de canais de comunicação não criptografados (mas confiáveis).
Um caso especial é obter a chave do host de um servidor, que você é um administrador de si mesmo, mas não tem uma linha segura direta para se conectar. Isso é comum para servidores virtuais ou servidores em uma nuvem. Nesse caso, um provedor de servidor deve ter uma solução específica. Por exemplo, um servidor especializado na mesma rede privada do seu servidor, com chaves de host conhecidas publicamente. Você pode se conectar a este servidor especializado e, a partir dele, conectar-se com segurança ao seu servidor (por exemplo, usando o terminal SSH). À medida que você se conecta à rede privada, pode confiar com segurança em qualquer chave do host. Uma vez conectado ao seu servidor, adquira sua chave de host. Com isso, você pode finalmente conectar-se diretamente, mas com segurança, através de uma rede pública. Como alternativa, o provedor do servidor pode fornecer a chave do host por meio de alguma interface administrativa.
Por exemplo, veja meus guias para: