Observação:
- Este tutorial requer acesso ao Oracle Cloud. Para se inscrever em uma conta gratuita, consulte Conceitos Básicos do Oracle Cloud Infrastructure Free Tier.
- Ele usa valores de exemplo para credenciais, tenancy e compartimentos do Oracle Cloud Infrastructure. Ao concluir seu laboratório, substitua esses valores por valores específicos do seu ambiente de nuvem.
Acessar e Gerenciar uma Instância de Computação do Linux usando o Oracle Cloud Infrastructure
Introdução
Neste tutorial, explicaremos como acessar o console de uma instância do Linux para instalar aplicativos ou executar operações de gerenciamento.
Abordagens de Conectividade
As instâncias de computação do Linux podem ser acessadas usando várias abordagens. Listamos as abordagens mais comuns.
-
Abordagem 1: Estabeleça conexão via SSH com o endereço IP público da instância de computação usando uma chave privada SSH com o terminal macOS.
-
Abordagem 2: Conecte-se por meio da console do terminal à instância de computação usando o nome de usuário e a senha SSH com a console do Oracle Cloud Infrastructure (OCI) Cloud Shell.
-
Abordagem 3: Conecte-se via SSH ao endereço IP público da instância de computação usando uma chave privada SSH com o aplicativo Royal TSX.
-
Abordagem 4: Estabeleça conexão via SSH com o endereço IP privado da instância de computação usando uma chave privada SSH com o OCI Cloud Shell.
-
Abordagem 5: Conecte-se via SSH ao endereço IP privado da instância de computação usando o nome de usuário e a senha SSH com o OCI Cloud Shell.
-
Abordagem 6: Estabeleça conexão via SSH com o endereço IP privado da instância de computação usando uma chave privada SSH com o host do OCI Bastion.
-
Abordagem 7: Use uma instância de computação Stepstone dentro de uma VCN (Rede Virtual na Nuvem).
Objetivos
- Acesse e gerencie uma instância de computação do Linux usando o Oracle Cloud Infrastructure.
Abordagem 1: Estabelecer conexão via SSH com o Endereço IP Público da Instância de Computação usando uma Chave Privada SSH com o Terminal macOS
Nesta abordagem, estabeleceremos conexão com uma instância do Linux usando SSH e o endereço IP público fornecido pelo OCI para estabelecer conexão diretamente com a instância usando o terminal macOS.
-
Execute os comandos a seguir.
-
Use a CLI (interface de linha de comando) para navegar até a pasta em que as chaves pública e privada estão armazenadas.
cd Downloads cd MyFreeInstanceKeys ls -l
-
Conecte-se à instância usando o comando SSH no qual você especifica a chave privada.
-
Restrinja as permissões da chave privada e certifique-se de que o acesso seja restrito, antes que possa ser usado.
chmod 600 ssh-key-2024-01-31.key
-
Conecte-se à instância usando o comando SSH no qual você especifica a chave privada.
ssh -i ssh-key-2024-01-31.key opc@xxx.xxx.xxx.229
-
Execute o seguinte comando para verificar o endereço IP.
ip a
-
Verifique o endereço IP.
-
Abordagem 2: Estabelecer conexão por meio da Console do Terminal com a Instância de Computação usando Nome de Usuário e Senha SSH com a Console do OCI Cloud Shell
Essa abordagem pode ser usada como backdoor quando você não tiver nenhuma conectividade de rede com sua instância e não for possível fazer log-in com SSH.
Pré-requisitos para o método 2
Precisamos criar o nome de usuário e a senha locais primeiro e, para fazer isso, precisamos fazer login com SSH usando a chave privada usando uma das outras abordagens. Isso é feito nas Abordagens 1, 3, 4, 5 e 6.
-
Quando fazemos login com SSH usando uma chave privada, podemos criar um novo nome de usuário local e designar uma senha a esse novo nome de usuário. Execute os comandos a seguir.
sudo useradd console sudo passwd console
Também é possível criar um novo nome de usuário e senha locais no processo de criação da instância. Mas vamos mostrar isso em outro tutorial.
Continuar com a abordagem 2
Agora que criamos o nome de usuário e a senha locais, podemos continuar estabelecendo conexão por meio da console do terminal com a instância de computação usando o nome de usuário e a senha SSH com a console do OCI Cloud Shell.
Nesta abordagem, estabeleceremos conexão com uma instância do Linux usando a console local fornecida pelo OCI para estabelecer conexão diretamente com a instância usando o OCI Cloud Shell.
-
Estabeleça conexão com o OCI Cloud Shell.
- Na página de detalhes da Instância, role para baixo.
- Clique em Conexão da Console para iniciar o OCI Cloud Shell e estabelecer conexão com a console.
-
Clique em Iniciar conexão do Cloud Shell.
-
A janela do OCI Cloud Shell só fornece um nome de usuário e não uma senha.
-
Esse nome de usuário e senha precisam ser criados e não estão lá por padrão.
- A janela do OCI Cloud Shell será aberta.
- O prompt fornece um nome de usuário.
-
Digite o nome de usuário e a senha locais no terminal da console.
Abordagem 3: Estabelecer conexão via SSH com o Endereço IP Público da Instância de Computação usando uma Chave Privada SSH com o Aplicativo Royal TSX
Nesta abordagem, estabeleceremos conexão com uma instância do Linux usando SSH e o endereço IP público fornecido pela OCI para estabelecer conexão diretamente com a instância usando o aplicativo Royal TSX.
-
Abra o aplicativo Royal TSX e crie um novo documento.
- Clique com o botão direito do mouse na pasta Conexões.
- Clique em Adicionar.
- Clique em Terminal.
-
Na guia Terminal, insira as seguintes informações.
- Informe o Nome para Exibição.
- Informe o endereço IP público ou FQDN da instância em Nome do Computador.
- Clique em Credenciais.
-
Na guia Credenciais, digite as informações a seguir.
- Verifique se a Credencial está selecionada.
- Selecione Especificar nome de usuário e senha.
- Informe o Nome do Usuário.
- Selecione a guia Arquivo de Chave Privada.
-
Na guia Arquivo de Chave Privada, especifique as informações a seguir.
- Selecione Caminho para o Arquivo de Chave Privada.
- Selecione o caminho do Arquivo de Chave Privada.
- Clique em Aplicar e Fechar.
- Clique duas vezes na nova conexão de criação para fazer log-in.
- Execute o comando
ip a
para revisar o endereço IP privado.
Abordagem 4: Estabelecer conexão via SSH com o Endereço IP Privado da Instância de Computação usando uma Chave Privada SSH com o OCI Cloud Shell
Nesta abordagem, estabeleceremos conexão com a instância do Linux usando o OCI Cloud Shell fornecido pelo OCI e estabeleceremos conexão com a instância usando o endereço IP privado.
-
Faça log-in na Console do OCI e clique no ícone do OCI Cloud Shell para abrir a console do Cloud Shell.
-
Clique em Cloud Shell.
Certifique-se de que a janela do Cloud Shell seja aberta.
-
Digite
N
para ignorar o tutorial por enquanto.
Para estabelecer conexão com a instância do Linux usando o endereço IP privado, é importante que o Cloud Shell tenha acesso à mesma sub-rede à qual a instância do Linux está conectada.
Podemos fazer isso conectando o Cloud Shell à mesma VCN e sub-rede em que a instância do Linux também reside. Por padrão, a rede é definida como Pública, mas mudaremos isso criando uma nova rede privada instantaneamente.
-
Clique em Rede e selecione Lista de definições de rede privada.
-
Clique em Create private network definition.
-
Em Criar definição de rede privada, digite as informações a seguir.
- Digite um Nome.
- Selecione a VCN correspondente na qual a instância do Linux reside.
- Selecione a Sub-rede na qual a instância do Linux reside.
- Selecione Usar rede ativa para ativar a rede privada imediatamente.
- Clique em Criar.
-
Observe que o status da rede será alterado para a rede privada recém-criada com Conectando. Isso levará alguns segundos para ser concluído.
- A rede privada está conectada.
- Clique em Fechar para fechar a lista de definições de rede privada.
- Execute o comando
ls-l
e veja se não temos a chave privada na pasta home. - Para fazer upload da chave privada, clique no círculo.
- Clique em Fazer Upload.
- Clique em Selecionar no seu computador.
- Clique em Fazer Upload.
- Selecione a chave privada no computador local.
- Clique em Abrir.
- Revise a chave selecionada na etapa anterior.
- Clique em Fazer Upload.
- Verifique se o upload foi concluído.
- Clique em Ocultar.
-
Execute o comando
ls-l
para verificar a chave privada.- Restrinja as permissões da chave privada e certifique-se de que o acesso seja restrito antes de poder ser usado.
- Conecte-se à instância usando o comando SSH e especifique a chave privada.
- Execute o seguinte comando para verificar o endereço IP.
- Verifique o endereço IP.
- Minimizar a console do Cloud Shell.
-
A console do Cloud Shell é minimizada. Clique em Restaurar para restaurar a console do Cloud Shell.
-
Revise a console do Cloud Shell restaurada. Clique em X para fechar a janela do Cloud Shell.
-
Clique em Sair para fechar a janela do Cloud Shell.
Agora, estamos de volta à visão geral da instância.
Abordagem 5: Estabelecer conexão via SSH com o Endereço IP Privado da Instância de Computação usando Nome de Usuário e Senha SSH com o OCI Cloud Shell
Na Abordagem 4, usamos a chave privada para fazer log-in na instância do Linux. Nesta abordagem, usaremos o nome de usuário e a senha.
-
Faça login usando o seguinte comando SSH com um nome de usuário e observe que estamos recebendo um erro de permissão negada.
Observação: Usamos o mesmo usuário que criamos anteriormente com o nome de usuário
console
.ssh console@10.0.0.163
-
Para testar isso e corrigir o erro, crie uma nova instância de computação do Linux.
Faça log-in com SSH usando uma chave privada e crie um nome de usuário e uma senha locais na nova instância do Linux.
Por padrão, a configuração SSH de imagem do Linux só permitirá fazer log-in usando a chave privada, não com um nome de usuário e uma senha usando SSH. Anteriormente, podíamos usar o nome de usuário e a senha, mas isso era por meio de uma conexão direta com a console.
-
Altere as definições no arquivo
/etc/ssh/sshd_config
.
-
Use o comando a seguir para alterar o arquivo
sshd_config
.sudo more /etc/ssh/sshd_config
O arquivo
/etc/ssh/sshd_config
contém estas definições:[opc@myfreeinstance2 ssh]$ sudo more /etc/ssh/sshd_config # $OpenBSD: sshd_config,v 1.103 208/04/09 20:41:22 tj Exp $ # This is the sshd server system-wide configuration file. See # sshd_config(5) for more information. # This sshd was compiled with PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin # The strategy used for options in the default sshd_config shipped with # OpenSSH is to specify options with their default value where # possible, but leave them commented. Uncommented options override the # default value. # If you want to change the port on a SELinux system, you have to tell # SELinux about this change. # semanage port -a -t ssh_port_t -p tcp #PORTNUMBER # #Port 22 #AddressFamily any #ListenAddress 0.0.0.0 #ListenAddress :: HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_ecdsa_key HostKey /etc/ssh/ssh_host_ed25519_key # Ciphers and keying #RekeyLimit default none # This system is following system-wide crypto policy. The changes to # crypto properties (Ciphers, MACs, ...) will not have any effect here. # They will be overridden by command-line options passed to the server # on command line. # Please, check manual pages for update-crypto-policies(8) and sshd_config(5). # Logging #SyslogFacility AUTH SyslogFacility AUTHPRIV #LogLevel INFO # Authentication: #LoginGraceTime 2m PermitRootLogin yes #StrictModes yes #MaxAuthTries 6 #MaxSessions 10 #PubkeyAuthentication yes # The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2 # but this is overridden so installations will only check .ssh/authorized_keys AuthorizedKeysFile .ssh/authorized_keys #AuthorizedPrincipalsFile none #AuthorizedKeysCommand none #AuthorizedKeysCommandUser nobody # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts #HostbasedAuthentication no # Change to yes if you don't trust ~/.ssh/known_hosts for # HostbasedAuthentication #IgnoreUserKnownHosts no # Don't read the user's ~/.rhosts and ~/.shosts files #IgnoreRhosts yes # To disable tunneled clear text passwords, change to no here! #PasswordAuthentication yes #PermitEmptyPasswords no PasswordAuthentication no # Change to no to disable s/key passwords #ChallengeResponseAuthentication yes ChallengeResponseAuthentication no # Kerberos options #KerberosAuthentication no #KerberosOrLocalPasswd yes #KerberosTicketCleanup yes #KerberosGetAFSToken no #KerberosUseKuserok yes # GSSAPI options GSSAPIAuthentication yes GSSAPICleanupCredentials no #GSSAPIStrictAcceptorCheck yes #GSSAPIKeyExchange no #GSSAPIEnablek5users no # Set this to 'yes' to enable PAM authentication, account processing, # and session processing. If this is enabled, PAM authentication will # be allowed through the ChallengeResponseAuthentication and # PasswordAuthentication. Depending on your PAM configuration, # PAM authentication via ChallengeResponseAuthentication may bypass # the setting of "PermitRootLogin without-password". # If you just want the PAM account and session checks to run without # PAM authentication, then enable this but set PasswordAuthentication # and ChallengeResponseAuthentication to 'no'. # WARNING: 'UsePAM no' is not supported in RHEL and may cause several # problems. UsePAM yes #AllowAgentForwarding yes #AllowTcpForwarding yes #GatewayPorts no X11Forwarding yes #X11DisplayOffset 10 #X11UseLocalhost yes #PermitTTY yes # It is recommended to use pam_motd in /etc/pam.d/sshd instead of PrintMotd, # as it is more configurable and versatile than the built-in version. PrintMotd no #PrintLastLog yes #TCPKeepAlive yes #PermitUserEnvironment no #Compression delayed #ClientAliveInterval 0 #ClientAliveCountMax 3 #UseDNS no #PidFile /var/run/sshd.pid #MaxStartups 10:30:100 #PermitTunnel no #ChrootDirectory none #VersionAddendum none # no default banner path #Banner none # Accept locale-related environment variables AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE AcceptEnv XMODIFIERS # override default of no subsystems Subsystem sftp /usr/libexec/openssh/sftp-server # Example of overriding settings on a per-user basis #Match User anoncvs # X11Forwarding no # AllowTcpForwarding no # PermitTTY no # ForceCommand cvs server [opc@myfreeinstance2 ssh]$
-
Adicione o código a seguir ao arquivo para permitir o log-in com SSH usando o nome de usuário e a senha.
PasswordAuthentication yes
-
Depois que o arquivo tiver sido salvo. Execute o comando a seguir e reinicie o servidor SSH na instância do Linux.
sudo systemctl restart sshd
-
Abra o OCI Cloud Shell.
- Certifique-se de que o Cloud Shell ainda esteja conectado à rede privada em que a imagem do Linux esteja disponível.
- Faça log-in com o comando SSH usando o nome de usuário.
- Informe
yes
para continuar. - Informe a senha para log-in
Abordagem 6: Estabelecer conexão via SSH com o endereço IP privado da instância de computação usando uma chave privada SSH com o OCI Bastion host
Nesta abordagem, estabeleceremos conexão com a instância do Linux usando o serviço OCI Bastion e, a partir daí, estabeleceremos conexão com a instância usando o endereço IP privado por meio de uma conexão de túnel.
-
Para podermos usar o serviço OCI Bastion, precisamos criar o serviço OCI Bastion primeiro.
- Abra a Console do OCI e clique no menu de hambúrguer.
- Clique em Identidade e Segurança.
- Clique em Bastion.
-
Clique em Criar Bastion e digite as seguintes informações.
- Informe o Nome da Base.
- Selecione a VCN que queremos acessar com o serviço Bastion.
- Selecione a sub-rede que queremos acessar com o serviço Bastion.
- Informe um endereço IP ou CIDR que queremos permitir ao serviço Bastion. Para este tutorial, usamos o endereço IP home da conexão ISP.
- Clique em Criar bastion.
-
Clique no serviço Bastion recém-criado.
-
Observe que o status é definido como CREATING.
- Após alguns segundos, veremos que o status foi alterado para ACTIVE.
- Clique em Criar sessão para criar uma sessão para a instância do Linux que queremos gerenciar.
- Selecione o Tipo de Sessão como Sessão SSH Gerenciada.
- Informe o Nome do Usuário.
- Informe a instância de computação do Linux com a qual queremos estabelecer conexão por meio do serviço Bastion.
- Selecione uma chave pública que queremos configurar para esta sessão específica.
- Certifique-se de que a chave pública esteja selecionada.
- Clique em Criar Sessão.
- Observe o seguinte erro: Para criar uma sessão SSH Gerenciada, o plug-in do Bastion deve estar ativado na instância de destino, mas o plug-in está desativado. Isso significa que, para estabelecer conexão com uma instância do Linux usando o Bastion, um software ou plug-in precisa ser instalado na instância do Linux e o plug-in precisa estar ativado.
- Vamos ativar esse plug-in na instância do Linux e na Console do OCI, clique no menu hambúrguer.
-
Clique em Instâncias.
-
Selecione a instância de computação do Linux.
-
Rolar para Baixo.
-
Observe que o plug-in do Bastion está definido como desativado.
-
Para ativar o plug-in do Bastion, siga as instruções.
- Clique em alternar para ativar o plug-in Bastion.
-
Aguarde até que o status mostre Em Execução.
Observação: quando alteramos a alternância de Desativado para Ativado, pode levar um minuto para que o status seja realmente alterado, porque em segundo plano o plug-in precisa ser baixado, instalado e iniciado e isso leva tempo.
- Vamos recriar a sessão no plug-in do Bastion. Na Console do OCI, clique no menu de hambúrguer.
- Clique em Identidade e Segurança.
- Clique em Bastion.
-
Clique no Bastion.
-
Clique em Criar sessão para criar uma sessão para a instância do Linux que queremos gerenciar.
- Selecione o Tipo de Sessão como Sessão SSH Gerenciada.
- Informe o Nome do Usuário.
- Selecione a instância de computação do Linux à qual queremos nos conectar por meio do Bastion.
- Selecione Escolher arquivo de chave SSH.
- Selecione uma chave pública que queremos configurar para esta sessão específica.
- Certifique-se de que a chave pública esteja selecionada.
- Clique em Criar Sessão.
-
Observe que o estado está Criando.
- Quando a sessão for criada, consulte o estado Ativo.
- Observe que o tempo padrão da sessão é 3 horas. Após 3 horas, a sessão será interrompida automaticamente e não poderemos mais usar a sessão e precisamos criar uma nova sessão.
- Arraste e solte o menu help em outro spot para que possamos acessar o menu da sessão.
- Clique em três pontos para acessar o menu de sessão.
- Selecione Copiar comando SSH.
-
Cole o comando SSH em um editor de texto e observe os placeholders
<privatekey>
.Substitua os placeholders
<privatekey>
pelo nome da chave privada. Use a chave privada que corresponde à chave pública usada quando a sessão do Bastion foi criada.Exemplo
-
Comando original.
ssh -i <privateKey> -o ProxyCommand="ssh -i <privateKey> -W %h:%p -p 22 ocid1.bastionsession.oc1.eu-amsterdam-1.amaaaaaaccocy5aapmrn66fdxdlg7lhefofhndmeq2ir6owe5afm2v7oghiq@host.bastion.eu-amsterdam-1.oci.oraclecloud.com" -p 22 opc@10.0.0.176
-
Comando modificado.
ssh -i ssh-key-2024-01-31.key -o ProxyCommand="ssh -i ssh-key-2024-01-31.key -W %h:%p -p 22 ocid1.bastionsession.oc1.eu-amsterdam-1.amaaaaaaccocy5aapmrn66fdxdlg7lhefofhndmeq2ir6owe5afm2v7oghiq@host.bastion.eu-amsterdam-1.oci.oraclecloud.com" -p 22 opc@10.0.0.176
-
-
Conecte-se à instância do Linux por meio da sessão do Bastion.
- Use o comando copiado completo com as chaves privadas adicionadas do computador em que temos as chaves privadas armazenadas usando o terminal macOS para estabelecer conexão com a instância do Linux por meio da sessão do Bastion.
- Informe yes para continuar.
- Informe yes para continuar.
- Execute o seguinte comando para verificar o endereço IP.
- Verifique o endereço IP.
-
Abra as definições da sessão do Bastion na Console do OCI.
- Clique em três pontos para acessar o menu de sessão.
- Selecione Delete session.
- Informe o nome da Sessão para confirmar a remoção da sessão.
- Clique em Excluir.
-
Verifique o estado que está Excluindo.
Quando a sessão é excluída, o estado é definido como Excluído.
Quando a sessão é excluída, a sessão SSH que abrimos por meio do terminal macOS agora também é encerrada.
O plug-in do Bastion não está presente.
Nesta abordagem, ativamos o plug-in do Bastion em uma instância do Linux já em execução. Também podemos ativar o plug-in do Bastion quando criamos uma instância desde o início.
Selecione as opções Avançadas, selecione as opções a seguir e continue com a criação da instância.
- Clique em Oracle Cloud Agent.
- Selecione Bastion.
Quando criamos uma nova imagem desde o início e verificamos o status após o plug-in do Bastion logo após a criação da instância e o status é RUNNING*, poderemos ver uma mensagem de erro com Bastion do Plug-in não presente....
Pode levar um minuto até que o status seja realmente alterado. Porque em segundo plano o plugin precisa ser baixado, instalado e iniciado e isso leva tempo. Aguarde 5 minutos até que o status seja alterado para Em Execução.
Quando o status não é alterado e a mensagem permanece O Bastion do Plug-in não está presente..., pode ser que a instância do Linux não consiga acessar a internet para fazer download do plug-in do Bastion. Diagnostique e solucione problemas de internet, NAT e gateway de serviço dentro da VCN para garantir que sua instância possa acessar a internet.
Abordagem 7: Use uma instância de computação Stepstone dentro de uma Rede Virtual na Nuvem
Nesta abordagem, criaremos uma instância dedicada do Linux que podemos usar como algum tipo de stepstone ou Bastion dedicado e, a partir daí, acessaremos a outra instância do Linux. Estamos usando recursos que podem custar dinheiro adicional em comparação com o uso do serviço OCI Bastion oferecido gratuitamente pela Oracle.
Não entraremos em detalhes desta abordagem, pois esta é uma combinação das abordagens que explicamos anteriormente.
Próximas Etapas
Neste tutorial, temos todas as abordagens possíveis para acessar e gerenciar uma instância do Linux dentro da OCI. Podemos acessar a instância do Linux diretamente da internet e da console ou podemos usar uma etapa intermediária como OCI Cloud Shell, Bastion ou uma instância dedicada.
Também mostramos como podemos estabelecer conexão com a instância usando SSH usando a chave privada ou pública e com um nome de usuário e senha locais.
Todas as abordagens de conexão possíveis são mostradas na imagem a seguir.
Confirmações
- Autor - Iwan Hoogendoorn (Especialista em Rede da OCI)
Mais Recursos de Aprendizagem
Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal Oracle Learning YouTube. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.
Para obter a documentação do produto, visite o Oracle Help Center.
Access and Manage a Linux Compute Instance using Oracle Cloud Infrastructure
F93491-02
August 2024