Digital Ocean SSH de uma gota para a segunda gota

1

Estou tentando o SSH de uma gota do Oceano Digital para uma segunda gota.

Aqui está minha configuração:

Configuração e configuração

  • Gota 1: MyTest (Ubuntu 16.04 512 MB de 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ídeo aqui , usei o PuttyGen para gerar um par de chaves pública-privada em meu sistema local (Windows 7). Eu não salvei a chave pública. Eu salvei a chave privada no meu sistema local (Windows 7). Eu adicionei a chave pública ao droplet MyTest. Agora eu posso usar Putty para ssh do meu sistema local (Windows 7) em MyTest sem uma senha exatamente como o vídeo mostra.

Problema

Agora, gostaria de usar o SSH do droplet MyTest no droplet RemoteHost.

Etapa 1.

Eu criei o droplet RemoteHost e anexei a mesma chave pública do MyTest. Portanto, as duas gotículas MyTest e RemoteHost têm a mesma chave pública.

Etapa 2.

Da minha máquina local (Winsows 7), usei PuTTy para SSH no droplet MyTest.

Etapa 3.

Então, (a partir da linha de comando do MyTest droplet) eu tentei o 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)?

Eu também mostro o erro na imagem acima.

Pergunta:

É possível o SSH de uma gota do Oceano Digital para uma gota diferente do Oceano Digital?

    
por edesz 12.10.2017 / 00:06

2 respostas

3

Sim, mas você precisa colocar uma cópia da sua chave privada no MyTest. O cliente SSH no MyTest não pode ler sua chave privada no seu PC.

Dito isto, você deve realmente usar um par de chaves diferente para conectar 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, pessoal ...) 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, a do seu par de PC e a 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).

    
por 12.10.2017 / 00:59
0

A resposta de @xenoid funcionou! Eu escolhi usar um par de chaves pública-privada diferente para conectar MyTest ao RemoteHost .

Aqui está o que eu tive que fazer (abordagem manual usando essas fontes - aqui e etapa 4 de aqui ) para seguir a sugestão do @ xenoid:

Na primeira gota (MyTest)

1.

root@MyTest:~# ssh-keygen -t rsa -N '' -f keyfilename.rsa
root@MyTest:~# cat ~/keyfilename.rsa.pub

A primeira linha gera 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-chave PUBLIC (usando o cursor do mouse) e pressione Ctrl + C para copiar a chave PUBLIC.

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 foi criado.

2. Use o nano editor para colar a chave PUBLIC. Pressione Enter para iniciar uma nova linha neste arquivo

3. Pressione Ctrl + V para colar a chave PRIVATE

4. Pressione Ctrl + X , y , Digite para salvar e sair com o mesmo nome de arquivo

5.

root@RemoteHost:~# exit

No cliente do Ubuntu (AnsibleFlex)

1.

root@MyTest:~# ssh [email protected] -i ~/keyfilename.rsa

em que 123.456.789.10 é o endereço IP público do RemoteHost . Isso abre o prompt do SSH no diretório /root no RemoteHost , conforme necessário.

Obrigado @xenoid!

    
por 12.10.2017 / 20:01