Estou tentando fazer o SSH de uma gota do Digital Ocean para uma segunda gota.
Aqui está minha configuração:
Instalação e configuração
- Gota 1: MyTest (Ubuntu 16.04 512 MB RAM)
- Droplet 2: RemoteHost (Ubuntu 16.04 512 MB de RAM)
- Sistema local (Windows 7 com Putty, PuttyGen)
Com base nas instruções do vídeoaqui, usei o PuttyGen para gerar um par de chaves pública-privada em meu sistema local (Windows 7). Não salvei a chave pública. Salvei a chave privada no meu sistema local (Windows 7). Adicionei a chave pública ao droplet MyTest. Agora posso usar o Putty para fazer ssh do meu sistema local (Windows 7) para o MyTest sem uma senha exatamente como mostra o vídeo.
Problema
Agora, gostaria de fazer o SSH do droplet MyTest para o droplet RemoteHost.
Passo 1.
Criei o droplet RemoteHost e anexei a mesma chave pública do MyTest. Portanto, ambos os droplets MyTest e RemoteHost possuem a mesma chave pública.
Passo 2.
Na minha máquina local (Winsows 7), usei PuTTy para SSH no droplet MyTest.
Etapa 3.
Então, (na linha de comando do droplet MyTest) tentei fazer SSH no droplet RemoteHost com o seguinte:
root@MyTest:~# ssh [email protected]
Depois disso, recebo a seguinte mensagem de erro
root@MyTest:~# ssh root@xxx
The authenticity of host 'xxx (xxx)' can't be established.
ECDSA key fingerprint is SHA256:yyy.
Are you sure you want to continue connecting (yes/no)?
Também mostro o erro na imagem acima.
Pergunta:
É possível fazer SSH de uma gota do Digital Ocean para uma gota diferente do Digital Ocean?
Responder1
Sim, mas você precisa colocar uma cópia da sua chave privada no MyTest. O cliente SSH no MyTest não consegue ler sua chave privada no seu PC.
Dito isto, você realmente deve usar um par de chaves diferente para conectar-se do MyTest ao RemoteHost porque a chave privada que você coloca no MyTest pode ser copiada por qualquer pessoa que tenha acesso a esse sistema (pessoas com quem você compartilha o servidor, talvez a equipe do DO. .) e usado para acessar outros sistemas que você acessa com essa chave. Portanto, no MyTest, gere um segundo par de chaves e copie sua chave pública para RemoteHost (que terá duas chaves públicas, uma do seu par de PCs e outra do par MyTest). Então você pode se conectar ao RemoteHost diretamente do seu PC (usando sua chave privada local) ou do MyTest (usando a chave privada MyTest).
Responder2
A resposta de @xenoid funcionou! Optei por usar um par de chaves pública-privada diferente para conectarMeu testeparaHospedeiro remoto.
Aqui está o que eu tive que fazer (abordagem manual usando essas fontes -aquie passo 4 deaqui) para seguir a sugestão de @xenoid:
Na primeira gota (MyTest)
1.
root@MyTest:~# ssh-keygen -t rsa -N '' -f keyfilename.rsa
root@MyTest:~# cat ~/keyfilename.rsa.pub
A primeira linhagera um par de chaves sem senha. A segunda linha exibe o conteúdo do arquivo de chave PUBLIC.
2. Selecione todos os caracteres no arquivo da chave PÚBLICA (usando o cursor do mouse) e pressione Ctrl+ Cpara copiar a chave PÚBLICA.
3.
root@MyTest:~# exit
Na segunda gota (RemoteHost)
1.
root@RemoteHost:~# chmod 700 ~/.ssh
root@RemoteHost:~# chmod 600 ~/.ssh/authorized_keys
root@RemoteHost:~# nano ~/.ssh/authorized_keys
Este arquivo já contém a chave PUBLIC do par público-privado gerado na minha máquina local e adicionado ao droplet quando ele foi criado.
2. Use oeditor nanopara colar a chave PÚBLICA. Pressione Enterpara iniciar uma nova linha neste arquivo
3. Pressione Ctrl+ Vpara colar a chave PRIVADA
4. Pressione Ctrl+ X, y, Enterpara salvar e sair com o mesmo nome de arquivo
5.
root@RemoteHost:~# exit
No cliente Ubuntu (AnsibleFlex)
1.
root@MyTest:~# ssh [email protected] -i ~/keyfilename.rsa
onde 123.456.789.10
está o endereço IP público doHospedeiro remoto. Isso abre o prompt SSH no /root
diretório emHospedeiro remoto, como requerido.
Obrigado @xenoid!