![problema comum: ssh: conecte-se ao host 10.0.2.15 porta 22: conexão recusada](https://rvso.com/image/1157738/problema%20comum%3A%20ssh%3A%20conecte-se%20ao%20host%2010.0.2.15%20porta%2022%3A%20conex%C3%A3o%20recusada.png)
Estou usando o VirtualBox no Windows 10 (host) para criar duas máquinas virtuais ( Guest DT
e Guest S
). Posso SSH de Guest DT
para o Guest S
?
Guest DT
é UbuntuÁrea de Trabalho18.04.Guest S
está executando o UbuntuServidor18.04.- Terminologia do VirtualBox
Eu sou inexperiente com SSH. Pesquisei no Google e li as respostas às 'perguntas semelhantes' neste site.
Erro
Em Guest DT
, eu faço isso:
$ ssh [email protected]
ssh: connect to host 10.0.2.15 port 22: Connection refused
Observação:
- Consigo executar ping em 10.0.2.15 com sucesso
test
é meu nome de usuário noGuest S
.
Configuração do ambiente
Sobre Guest DT
:
$ ssh-keygen
$ cat ~/.ssh/id_rsa.pub
ssh-rsa <a very long key> neil@neil-VirtualBox
Sobre Guest S
:
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
$ touch ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
$ echo "ssh-rsa <a very long key> neil@neil-VirtualBox" > ~/.ssh/authorized_keys
$ /etc/init.d/ssh restart
Sobre Guest S
:
test@server01:~$ service sshd status
ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2018-06-15 02:05:04 UTC; 1h 16min ago
Process: 903 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
Main PID: 906 (sshd)
Tasks: 1 (limit: 2317)
CGroup: /system.slice/ssh.service
└─906 /usr/sbin/sshd -D
Jun 15 02:05:04 server01 systemd[1]: Starting OpenBSD Secure Shell server...
Jun 15 02:05:04 server01 sshd[906]: Server listening on 0.0.0.0 port 22.
Jun 15 02:05:04 server01 sshd[906]: Server listening on :: port 22.
Jun 15 02:05:04 server01 systemd[1]: Started OpenBSD Secure Shell server.
$ sudo ufw status
[sudo] password for test:
Status: inactive
/etc/ssh/sshd_config contains :
#PubkeyAuthentication yes
Responder1
Acho que a configuração de rede padrão para convidado do VirtualBox é NAT
e não se destina a alcançar esse tipo de comunicação de rede; mas com base em postagens antigas pode ser possível porencaminhamentouma porta que não seja do sistema para uma porta Convidada e usando o padrãoendereço IP de loopbackpara chegar ao Convidado. 10.0.2.2 é o loopback padrão.
Configurar rede
No entanto, o mais fácil é garantir que você escolheu a rede correta para cada um dos convidados. Desligue suas máquinas convidadas e, no VirtualBox, edite oModo de rede apropriado para suas necessidades (grade de notas).
Usando rede NAT padrão
Usando NAT, o VirtualBox usa um IP especial 10.0.2.2 como loopback (pelo menos acho que isso ainda é verdade). Portanto, as portas encaminhadas do loopback estão disponíveis para todos os convidados. Acho que você deveria poder tirar vantagem disso. Para se comunicar usando uma rede NAT, será necessário um dos seguintes:
Usando VBoxManage, configure o encaminhamento NAT de umporta que não é do sistema (1024–65535)para um inferiorporta do sistema (<1024).
- Neste caso encaminhe algo como a porta 2222, para a porta 22 (padrão para SSH). Isso também pressupõe que usaremos
Guest S
o endereço IP de10.0.2.15
, de acordo com a pergunta. Configure o encaminhamento de porta no host Virtualbox, execute:
VBoxManage modificarvm "Nome da VM" --natpf1 "guestssh,tcp,,2222,,22"
Todo o tráfego TCP que chega na porta 2222 em qualquer interface do host será encaminhado para a porta 22 no convidado. O nome do protocolo tcp é um atributo obrigatório que define qual protocolo deve ser usado para encaminhamento (udp também pode ser usado). O nome convidadossh é puramente descritivo e será gerado automaticamente se omitido. O número após --natpf indica a placa de rede, como em outras partes do VBoxManage.
Verifique a regra adicionada:
VBoxManage showvminfo meuservidor | grep 'Regra'
Conecte-se
Guest Server
via mapeamento de loopback de host e encaminhamento de porta paraGuest S
neil@neil-VirtualBox$ ssh -p 2222[e-mail protegido]
- Neste caso encaminhe algo como a porta 2222, para a porta 22 (padrão para SSH). Isso também pressupõe que usaremos
Alternativa: mudança (Convidados)/etc/sshd_configpara ouvir em um porta que não é do sistema (> 1024). Então recarregue o ssh.
Responder2
Simplesmente remova todas as chaves de impressão digital ECDSA (provavelmente SHA256) contidas no diretório de hosts conhecidos.
- Correr
vi ~/.ssh/known_hosts
- Exclua todas as chaves associadas ao endereço IP do assunto no arquivoknown_hosts.
- Digite a tecla "Esc" e depois a tecla "Shift" + ":" + "x"