Conexão com Nós Gerenciados Usando SSH
Descubra como usar SSH para estabelecer conexão com nós de trabalho em pools de nós em clusters que você criou usando o Kubernetes Engine (OKE).
Se você forneceu uma chave SSH pública ao criar um pool de nós gerenciados em um cluster, a chave pública será instalada em todos os nós de trabalho no pool de nós. Em plataformas UNIX e semelhantes ao UNIX (incluindo Solaris e Linux), você pode se conectar por meio do SSH aos nós de trabalho usando o utilitário SSH (um cliente SSH) para executar tarefas administrativas. Observe que você não pode estabelecer conexão com nós virtuais usando SSH.
Observe que as seguintes instruções presumem que a máquina UNIX usada para se conectar ao nó de trabalho:
- Tem o utilitário ssh instalado.
- Tem acesso ao arquivo de chave privada SSH pareado com a chave pública SSH que foi especificada quando o cluster foi criado.
A forma de conexão com nós de trabalho usando SSH depende da especificação de sub-redes públicas ou privadas para os nós de trabalho ao definir os pools de nós no cluster.
Conexão com Nós Gerenciados em Sub-redes Públicas Usando SSH
Antes de estabelecer conexão com um nó gerenciado em uma sub-rede pública usando SSH, você deve definir uma regra de entrada no grupo de segurança de rede aplicável (recomendado) ou na lista de segurança de sub-rede para permitir o acesso SSH. A regra de entrada deve permitir acesso à porta 22 nos nós de trabalho da origem 0.0.0.0/0 e de qualquer porta de origem, como a seguir:
Tipo | CIDR de Origem | Protocolo IP | Intervalo de Portas de Origem | Dest. Intervalo de Portas | Tipo e Código | Permite: e Descrição: |
---|---|---|---|---|---|---|
Com monitoramento de estado | 0.0.0.0/0 | TCP | Tudo | 22 | n/d |
Permite: Tráfego TCP nas portas: 22 Protocolo de Log-in Remoto SSH Descrição: Ativa o acesso SSH. |
Para estabelecer conexão com um nó gerenciado em uma sub-rede pública por meio do SSH de uma máquina UNIX usando o utilitário SSH:
-
Descubra o endereço IP do nó de trabalho ao qual você deseja se conectar. Você pode fazer isso de várias maneiras:
- Usando o kubectl. Se você ainda não tiver feito isso, siga as etapas para configurar o arquivo de configuração kubeconfig do cluster e (se necessário) defina a variável de ambiente KUBECONFIG para apontar para o arquivo. Observe que você deve configurar seu próprio arquivo kubeconfig. Não é possível acessar um cluster usando um arquivo kubeconfig que outro usuário tenha configurado. Consulte Configurando o Acesso ao Cluster. Em seguida, em uma janela de terminal, digite
kubectl get nodes
para ver os endereços IP públicos dos nós de trabalho nos pools do nó no cluster. - Usando a Console. Na Console, exiba a página Lista de Clusters e selecione o cluster ao qual o nó de trabalho pertence. Na guia Pools de Nós, clique no nome do pool de nós ao qual pertence o nó de trabalho. Na guia Nós, você vê o endereço IP público de cada nó de trabalho no pool de nós.
- Usando a API REST. Use a operação ListNodePools para ver os endereços IP públicos dos nós de trabalho em um pool de nós.
- Usando o kubectl. Se você ainda não tiver feito isso, siga as etapas para configurar o arquivo de configuração kubeconfig do cluster e (se necessário) defina a variável de ambiente KUBECONFIG para apontar para o arquivo. Observe que você deve configurar seu próprio arquivo kubeconfig. Não é possível acessar um cluster usando um arquivo kubeconfig que outro usuário tenha configurado. Consulte Configurando o Acesso ao Cluster. Em seguida, em uma janela de terminal, digite
-
Na janela de terminal, digite
ssh opc@<node_ip_address>
para se conectar ao nó de trabalho, em que<node_ip_address>
corresponde ao endereço IP do nó de trabalho que você anotou anteriormente. Por exemplo, você pode digitarssh opc@192.0.2.254
.Observe que, se a chave privada SSH não estiver armazenada no arquivo ou no caminho que o utilitário ssh espera (por exemplo, o utilitário ssh pode esperar que a chave privada seja armazenada em ~/.ssh/id_rsa), você deverá especificar explicitamente o nome do arquivo e o local da chave privada de duas maneiras:
- Use a opção
-i
para especificar o nome do arquivo e o local da chave privada. Por exemplo,ssh -i ~/.ssh/my_keys/my_host_key_filename opc@192.0.2.254
-
Adicione o nome do arquivo e o local da chave privada a um arquivo de configuração SSH, seja o arquivo de configuração do cliente (~/.ssh/config), se houver, ou o arquivo de configuração do cliente no nível do sistema (/etc/ssh/ssh_config). Por exemplo, você pode adicionar o seguinte:
Host 192.0.2.254 IdentityFile ~/.ssh/my_keys/my_host_key_filename
Para obter mais informações sobre o arquivo de configuração do utilitário ssh, digite
man ssh_config
Observe também que as permissões no arquivo de chave privada devem conceder acesso de leitura/gravação/execução, mas impedir que outros usuários acessem o arquivo. Por exemplo, para definir permissões apropriadas, você pode inserir
chmod 600 ~/.ssh/my_keys/my_host_key_filename
. Se as permissões não estiverem definidas corretamente e o arquivo de chave privada estiver acessível para outros usuários, o utilitário ssh simplesmente ignorará o arquivo de chave privada. - Use a opção
Conexão com Nós Gerenciados em Sub-redes Privadas Usando SSH
Os nós de trabalho gerenciados em sub-redes privadas só têm endereços IP privados (eles não têm endereços IP públicos). Eles só podem ser acessados por outros recursos dentro da VCN.
Você pode usar o Acesso Privado do Cloud Shell para obter acesso SSH aos nós de trabalho em sub-redes privadas (consulte Rede Privada do Cloud Shell).
A Oracle recomenda usar o serviço Oracle Cloud Infrastructure Bastion para permitir o acesso SSH externo a nós de trabalho em sub-redes privadas. Para obter mais informações sobre bastions, consulte Configurando um Bastion para Acesso ao Cluster.