Problemas ao Estabelecer Conexão com uma Sessão

Resolva os problemas que podem ocorrer quando você tentar se conectar a uma sessão existente.

Em geral, para diagnosticar e solucionar problemas de comandos SSH, adicione a opção detalhada (-v). Por exemplo:

ssh -v -i <private_key> -N -L <local_port>:<target_IP>:<port> <bastion>
Observação

Não use as opções -vv ou -vvv.

Não é possível estabelecer conexão com uma sessão usando SSH e uma chave pública

Quando você usa SSH e uma chave pública para estabelecer conexão com um SSH gerenciado ou com uma sessão de encaminhamento de porta (também conhecida como túnel SSH), a conexão falha e a seguinte mensagem é exibida:

Permission denied (publickey)

Para resolver o problema, edite o arquivo ~/.ssh/config e adicione as seguintes linhas:

Host *
    HostKeyAlgorithms +ssh-rsa
    PubkeyAcceptedKeyTypes +ssh-rsa
Observação

Use * para o host no arquivo de configuração SSH para acessar o bastion host e o host de destino. Como alternativa, você pode adicionar host.bastion.*.oci.* e todos os endereços IP privados do host de destino ao arquivo de configuração SSH.

Consulte Connecting to Your Instance para obter mais ajuda.

O Endereço IP não está na Lista de Permissões do Bastion

Ao criar um bastion, você especifica uma Lista de Permissões do Bloco CIDR. Você adiciona um ou mais intervalos de endereços em notação CIDR cuja conexão com sessões hospedadas por este bastion você deseja permitir.

Se o endereço IP da máquina local não estiver na lista de permissões, o comando SSH falhará com esta mensagem:

Enter passphrase for key 'id_rsa': <your_passphrase>
...
Connection to host.bastion.<region>.oci.oraclecloud.com closed by remote host.

Edite o bastion e verifique se o endereço IP da máquina local está na Lista de Permissão do Bloco CIDR. Após alterar a lista de permissões, você também deverá criar uma nova sessão. Essa alteração não afeta as sessões existentes.

A VCN Não Permite Tráfego de Entrada do Bastion

A VCN (rede virtual na nuvem) e a sub-rede em que o recurso de destino foi criado devem permitir o tráfego de rede recebido do bastion na porta de destino.

Quando você tenta se conectar a uma sessão SSH Gerenciada, a conexão expira após vários minutos e imprime esta mensagem:

Enter passphrase for key 'id_rsa': <your_passphrase>
...
kex_exchange_identification: Connection closed by remote host

Para uma sessão de Encaminhamento de Porta, a conexão SSH inicial é bem-sucedida, mas qualquer tentativa de usar o túnel SSH sofre timeout após vários minutos e imprimirá a mesma mensagem de erro.

Por exemplo, para usar uma sessão para se conectar à porta 8001 em uma instância de computação de um bastion com o endereço IP 192.168.0.99, a sub-rede usada para acessar a instância precisa permitir o tráfego de entrada de 192.168.0.99 na porta 8001.

A lista de segurança padrão para uma sub-rede permite tráfego de entrada para a porta SSH 22 de qualquer endereço IP, mas essa regra pode ser alterada ou excluída. Além disso, a lista de segurança padrão para uma sub-rede geralmente não permite tráfego de entrada de qualquer endereço IP para outros números de porta, como:

  • 1521: Oracle Database
  • 3306: MySQL Database
  • 3389: RDP (Remote Desktop Protocol)

Atualize a lista de segurança da sub-rede de destino e adicione o endereço IP do bastion. Consulte Permitindo o Acesso à Rede pelo Bastion.

O Comando de Encaminhamento de Porta Aparece sem Resposta

Quando você usa o SSH para estabelecer conexão com uma sessão de Encaminhamento de Porta (também conhecida como túnel SSH), o processo não sai depois que você digita a frase-senha da chave privada. Esse resultado é normal. Não feche o terminal.

Para verificar se o túnel SSH foi criado com sucesso, você pode executar o comando SSH novamente com saída detalhada. As mensagens finais após uma conexão bem-sucedida são:

debug1: Entering interactive session.
debug1: pledge: network

Após criar o túnel SSH, use um aplicativo apropriado para estabelecer conexão com o recurso de destino usando a porta local especificada no comando SSH: localhost:local port ou 127.0.0.1:local port.

Por exemplo, para usar uma sessão de Encaminhamento de Porta para um Oracle Database, abra o Oracle SQL Developer e conecte-se a localhost:1521.

Consulte Estabelecendo Conexão com Sessões no Bastion para ver mais exemplos.

A Conexão Ociosa está Fechada

Por padrão, o servidor SSH fecha uma conexão inativa após 5 minutos. Para evitar que conexões inativas sejam fechadas, configure o cliente SSH para enviar pacotes vazios ao servidor regularmente.

Por exemplo, no Linux, crie ou edite o arquivo ~/.ssh/config e adicione as seguintes linhas:

Host *
    ServerAliveInterval 120
    ServerAliveCountMax 3

Neste exemplo, pacotes vazios são enviados a cada dois minutos (120 segundos), e o cliente executa, no máximo, três tentativas.