SSH: Como tratar falta: /home/USER/.ssh/known_hosts [closed]

5

Eu tenho um laptop antigo que estou usando para aprender o Ubuntu Server 12.10. Antes de reformatar e instalar o Ubuntu Server, o Ubuntu Desktop foi usado.

Com o Ubuntu Desktop, eu estava usando um domínio hospedado no-ip.com para acessar a máquina via ssh (sem problemas). Após a reformatação, estou tentando usar o mesmo domínio no-ip.com para acessar essa mesma máquina (mesmo ip estático na LAN doméstica), mas agora estou recebendo o seguinte erro:

   WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!    
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX: (Omitted).
Please contact your system administrator.
Add correct host key in /home/guest/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /home/guest/.ssh/known_hosts:2
  remove with: ssh-keygen -f "/home/guest/.ssh/known_hosts" -R username.no-ip.org
ECDSA host key for username.no-ip.org has changed and you have requested strict checking.
Host key verification failed.

Admito que não entendo muito da mensagem de erro. Após algumas pesquisas no Google, optei por executar o seguinte comando:

$ ssh-keygen -R {username.no-ip.org}

Qual é o seguinte erro:

ssh-keygen: /home/jerry/.ssh/known_hosts: No such file or directory

"Convidado", como sugerido na mensagem de erro, também não existe:

jerry@mediaserver:/home$ tree -a
.
└── jerry
    ├── .bash_history
    ├── .bash_logout
    ├── .bashrc
    ├── .cache
    │   └── motd.legal-displayed
    ├── .config
    │   └── htop
    │       └── htoprc
    └── .profile

O que gera as seguintes perguntas: se esse arquivo não existir, onde está a discrepância na mensagem de erro? Talvez eu precise criar este arquivo?

Obrigado a qualquer um que esteja disposto a trabalhar nisso comigo!

-Jerry

EDITAR:

Devo acrescentar que posso usar o ssh localmente usando o endereço IP atribuído localmente.

    
por jerrycrabb 21.12.2012 / 20:51

1 resposta

3

O aviso significa que o ID do host foi alterado (da instalação antiga para a nova). Isso é bom! Funciona, deixando você saber que mudou ...

Efetue login como usuário não privilegiado (não raiz) e crie o diretório oculto, /home/jerry/.ssh:

cd; mkdir .ssh; chmod 0700 .ssh

Nesse ponto, você pode adicionar hosts ao arquivo known_hosts (/home/jerry/.ssh/known_hosts).

Ou, se você se conectar como convidado, faça o mesmo que o usuário, convidado, não Jerry.

Note que, caso deseje que o diretório .ssh seja criado para todos os novos usuários, inclua o diretório .ssh em / etc / skel. O diretório / etc / skel contém arquivos e diretórios que todos os novos usuários devem ter.

sudo mkdir /etc/skel/.ssh; sudo chmod 0700 /etc/skel/.ssh

Depois, todo novo usuário que você criar terá um diretório .ssh com o perms certo (0700).

    
por user8290 21.12.2012 / 21:14

Tags