[Ambiente de configuração] VS Code no Windows se conecta remotamente à máquina virtual Ubuntu

Índice

Um, o ambiente

Dois passos principais

Três etapas detalhadas

4. Conexão remota sem segredo

Cinco, link de referência

Seis, conhecimento extra


Um , o meio ambiente

  • Windows 11 Home Edição Chinesa
  • Versão do VS Code: 1.80.2
  • VMware® Workstation 16 Pro (versão: 16.1.2 build-17966106)
  • ubuntu-22.04.2-desktop-amd64

Dois passos principais _

  • Instale o OpenSSH no Windows
  • O VS Code instala o plug-in Remote-SSH

Três etapas detalhadas _

  1. Instale um servidor SSH no Ubuntu. Abra um terminal e execute os seguintes comandos em sequência para instalar o servidor OpenSSH e iniciar o servidor SSH:
    1. sudo apt update
    2. sudo apt install openssh-server
    3. reinicialização do serviço sshd
  2. Abra o VS Code no Windows e instale a extensão "Remote - SSH". Pesquise "Remoto - SSH" na visualização estendida da barra lateral e instale-o.
  3. Abra a paleta de comandos no VS Code. Você pode abrir a paleta de comandos pressionando  (ou clicando no botão " Abrir janela remotaCtrl+Shift+P " no canto inferior esquerdo do VS Code ).
  4. Na paleta de comandos, digite " Remote-SSH: Connect to Host " e selecione essa opção.
  5. Selecione " Configurar hosts SSH " no menu pop-up .
  6. Selecione o arquivo " ~/.ssh/config " ou crie um novo arquivo de configuração ( múltiplas informações do servidor Linux podem ser configuradas neste arquivo de configuração ).
  7. No arquivo de configuração, adicione o seguinte, substituindo hostname pelo seu endereço IP ou nome de host do Ubuntu e username pelo seu nome de usuário no Ubuntu:
  8. Retorne ao painel de comando, digite " Remote-SSH: Connect to Host " novamente (ou clique no botão " Open Remote Window " no canto inferior esquerdo do VS Code ) e selecione a conexão que você acabou de configurar.

  9. Digite sua senha de usuário do Ubuntu para autenticação, mas o seguinte erro é encontrado aqui, indicando que o cliente OpenSSH não está instalado no ambiente Windows.

  10. Execute o PowerShell como administrador para instalar o OpenSSH usando o PowerShell. Para garantir que o OpenSSH esteja disponível, execute o seguinte comando:
    1. Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'
  11. Se você não tiver um cliente SSH instalado, o código acima produzirá o seguinte:
    1. Nome: OpenSSH.Client~~~~0.0.1.0
    2. Estado: Não Presente
  12. Em seguida, execute o seguinte comando para instalar o cliente OpenSSH
    1. Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
  13. Inicie e configure o servidor OpenSSH para começar a usar e, em seguida, execute os seguintes comandos para iniciar sshd
    1. Start-Service sshd
    2. Set-Service -Name sshd -StartupType 'Automático'
    3. if (!(Get-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -ErrorAction SilentlyContinue | Select-Object Name, Enabled)) { Write-Output "A regra de firewall 'OpenSSH-Server-In-TCP' não existe, criando-o..." New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22 } else { Write-Output "A regra de firewall 'OpenSSH-Server-In-TCP' foi criada e existe." }
  14. Em seguida, clique em " Explorador remoto " na coluna esquerda da interface do VsCode e, na lista expandida "Informações de conexão remota do Linux", clique com o botão direito do mouse em um deles para fazer uma conexão remota, conforme a seguir.
  15. Após uma conexão bem-sucedida, o VS Code abrirá uma nova janela exibindo o sistema de arquivos no Ubuntu (você pode usar "Arquivo" > "Abrir pasta" para navegar e abrir pastas no diretório inicial remoto).
  16. Então você pode escrever, salvar e executar o código no ambiente Ubuntu no VS Code.
  17. Se você deseja encerrar a conexão SSH, pode usar Arquivo > Fechar conexão remota para voltar a executar o VS Code localmente.

4. Segredo - conexão remota gratuita

Para implementar o login remoto sem senha em sistemas Linux no VSCode, você pode usar pares de chaves SSH. Aqui estão as etapas detalhadas:

  1. Gere um par de chaves SSH: Primeiro, você precisa gerar um par de chaves SSH em um computador local (como o Windows). Abra um terminal ou janela de prompt de comando (como o PowerShell) e execute o seguinte comando:
    1. ssh-keygen -t rsa
  2. Siga as instruções para selecionar o local de salvamento e a senha do arquivo de chave e outras configurações. Isso gerará um arquivo de chave privada ( id_rsa) e um arquivo de chave pública ( id_rsa.pub).
  3. Adicione o arquivo de chave pública ao servidor Linux: Faça upload do arquivo de chave pública para  ~/.ssh/authorized_keys um arquivo no servidor Linux remoto. Copie o arquivo de chave pública para o servidor (meu arquivo de chave pública está no diretório local  C:/Users/86152/.ssh/id_rsa.pub) com o seguinte comando:
    1. scp C:/Users/86152/.ssh/id_rsa.pub username@server_ip:~/
  4. usernameSubstitua pelo nome de usuário no servidor Linux ao qual você deseja se conectar e server_ipsubstitua pelo endereço IP do servidor. Este comando copiará o arquivo de chave pública para o diretório inicial do servidor remoto.
  5. Conecte-se ao servidor Linux usando SSH: Use o seguinte comando seguido da senha de login para autenticar:
    1. ssh nome de usuário@servidor_ip
  6. Adicione a chave pública ao authorized_keysarquivo: Anexe o conteúdo do arquivo de chave pública ao ~/.ssh/authorized_keysarquivo com o seguinte comando (certifique-se de que .ssho diretório exista, crie-o se ainda não existir):
    1. cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
  7. Definir permissões de arquivo: Use o seguinte comando para corrigir problemas de permissão de arquivo, isso garantirá que .sshos diretórios tenham permissões de 700 (o proprietário tem permissões de leitura, gravação e execução) e authorized_keysos arquivos têm permissões de 600 (o proprietário tem permissões de leitura e gravação):
    1. chmod 700 ~/.ssh
    2. chmod 600 ~/.ssh/authorized_keys
  8. Depois de concluir as etapas acima, você pode se conectar ao servidor Linux por meio do VsCode sem inserir uma senha.

Cinco , link de referência

1. Instale o OpenSSH no Windows

2. Desenvolvimento remoto via SSH

3. Dicas e truques de desenvolvimento remoto

Seis , conhecimento extra

1.SSH (Secure Shell) é um protocolo de rede para login remoto e transferência segura de arquivos. Ele fornece um meio de comunicação criptografada segura entre um cliente e um servidor remoto em uma conexão de rede insegura (por exemplo, a Internet). O seguinte é uma introdução ao SSH:

  • Segurança: SSH é um protocolo de criptografia que garante a segurança dos dados transmitidos por conexões de rede inseguras. Ele usa criptografia de chave pública e criptografia de chave simétrica para proteger a confidencialidade das comunicações e impedir que os dados sejam espionados e adulterados.
  • Login remoto: O uso mais comum do SSH é o login remoto. Usando um cliente SSH, os usuários podem se conectar a um servidor remoto pela Internet e executar comandos e acessar recursos no servidor remoto como se estivessem operando diretamente no servidor.
  • Transferência de arquivos: o SSH fornece um mecanismo seguro de transferência de arquivos chamado SCP (cópia segura) ou SFTP (protocolo de transferência de arquivos SSH). Usando SCP ou SFTP, os usuários podem transferir arquivos com segurança entre um computador local e um servidor remoto.
  • Autenticação do usuário: o SSH usa criptografia de chave pública para autenticação. Ao estabelecer uma conexão SSH, uma chave pública é trocada entre o cliente e o servidor. O cliente gera um par de chaves (chave pública e chave privada) e envia a chave pública para o servidor. O servidor associa a chave pública a um usuário específico e a utiliza para autenticar o usuário.
  • Portas e configuração: SSH usa a porta TCP padrão 22 para comunicação. No entanto, a porta do servidor SSH pode ser alterada, se necessário. Além disso, os arquivos de configuração do servidor SSH residem no servidor e podem ser usados ​​para definir muitos comportamentos e restrições diferentes.
  • Cliente e Servidor: SSH consiste em um cliente SSH e um servidor SSH. O cliente é usado para iniciar uma conexão SSH e enviar comandos e solicitações ao servidor. O servidor é responsável por aceitar conexões de clientes e fornecer os serviços necessários (login, transferência de arquivos, etc.).
  • Redes públicas: Como o SSH fornece comunicação criptografada segura, ele é amplamente usado para acessar servidores remotos em redes públicas não confiáveis. Por meio do SSH, os usuários podem usar servidores remotos na Internet com segurança, sem se preocupar com a segurança de dados confidenciais.

Em suma, o SSH é um protocolo seguro de login remoto e transferência de arquivos, que fornece comunicação criptografada e mecanismos de autenticação, permitindo que os usuários acessem e operem sistemas remotos com segurança em redes inseguras.


2. OpenSSH é um conjunto de software de código aberto que implementa funções de login remoto e transferência segura de arquivos. É uma implementação do protocolo SSH e fornece um conjunto de ferramentas de linha de comando e daemons para acesso remoto seguro e transferência de arquivos em uma rede. O seguinte é uma introdução ao OpenSSH:

  • Função: OpenSSH fornece login remoto seguro e funções de transferência de arquivos por meio de protocolos de comunicação criptografados. Ele suporta várias funções do protocolo SSH, incluindo criptografia, chave pública e autenticação, execução remota de comandos, transferência de arquivos (via SCP e SFTP) e funções como encaminhamento de porta e tunelamento.
  • Segurança: OpenSSH está empenhado em fornecer comunicação segura e transmissão de dados. Ele usa tecnologia de criptografia para proteger o conteúdo da comunicação e garantir que os dados não sejam espionados, adulterados ou falsificados durante a transmissão. Isso inclui criptografar comunicações usando algoritmos de chave simétrica e criptografia de chave pública e garantir a autenticação de usuários usando vários métodos de autenticação, como senhas, chaves públicas e certificados.
  • Componentes: OpenSSH consiste em vários componentes principais. Entre eles, o cliente OpenSSH (ssh) é usado para iniciar conexões SSH e interagir com hosts remotos; o servidor OpenSSH (sshd) roda em hosts remotos e é responsável por aceitar conexões SSH, realizar autenticação de usuários e fornecer login remoto e transferência de arquivos serviços; Existem outras ferramentas auxiliares como ssh-keygen para gerar e gerenciar pares de chaves e ssh-agent para gerenciar autenticação de proxy com chaves privadas.
  • Suporte ao sistema operacional: OpenSSH pode ser executado em uma variedade de sistemas operacionais, incluindo vários sistemas semelhantes ao Unix (como Linux, BSD, etc.) e versões do Microsoft Windows. O OpenSSH pode ser facilmente instalado e configurado nesses sistemas para login remoto seguro e transferência de arquivos.
  • Arquivos de configuração e personalização: OpenSSH fornece opções de configuração flexíveis que permitem aos usuários personalizar de acordo com suas necessidades específicas. Ao modificar os arquivos de configuração OpenSSH (como sshd_config), você pode definir políticas de segurança, regras de controle de acesso, configurações de porta, configuração de usuário, etc. Isso torna o OpenSSH adaptável a diferentes ambientes e necessidades.
  • Suporte da comunidade e código aberto: OpenSSH é um software de código aberto e seu código-fonte está disponível publicamente. Isso permite que usuários e desenvolvedores revisem, modifiquem e distribuam livremente o código e contribuam com melhorias. O OpenSSH tem forte suporte da comunidade e uma ampla base de usuários, portanto, pode ser continuamente aprimorado e atualizado, mantendo a segurança.

No geral, o OpenSSH é um poderoso conjunto de software de código aberto que fornece login remoto seguro e funções de transferência de arquivos e garante a segurança dos dados e identidades do usuário por meio de seu protocolo de comunicação criptografado. É amplamente utilizado em vários cenários de aplicação, como gerenciamento de sistemas remotos, manutenção de sistemas, cooperação remota, backup e transferência de arquivos.

Acho que você gosta

Origin blog.csdn.net/weixin_43729127/article/details/131877323
Recomendado
Clasificación