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).
Portanto, é 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 depois de 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 própria impressão digital, 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 precisar sudo su
, vá para / etc / ssh. Você verá que existem muitos arquivos .pub
; 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 oferecida 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ê.