Em uma
postagem anterior
do blog Remote SSH , falamos sobre como configurar uma máquina virtual Linux e conectar-se à VM usando a
extensão Remote-SSH no Visual Studio Code. Nesta postagem do blog, abordaremos algumas dicas e truques que você pode usar para aproveitar ao máximo sua configuração remota.

Conectar usando SSH remoto
A extensão Visual Studio Code Remote - SSH permite conectar-se a uma máquina remota ou VM usando SSH, tudo de dentro do VS Code. Se você ainda não possui a extensão instalada, pode procurar "ssh remoto" na visualização Extensões (⇧⌘X).

Depois de instalar a extensão, você verá um indicador no canto inferior esquerdo da barra de status. Este indicador informa em que contexto o Código VS está em execução (local ou remoto). Clique no indicador para exibir uma lista de comandos de extensão remota.

Arquivo de configuração SSH
Na postagem do blog Remote SSH anterior, nós nos conectávamos apenas a uma única máquina e o fizemos inserindo o "usuário @ host" quando solicitado. Se você efetuar logon em vários servidores remotos ou máquinas virtuais locais regularmente, há uma maneira melhor de conectar-se sem precisar lembrar todos os nomes de usuário, endereços e opções de configuração adicionais.
O OpenSSH suporta o uso de um
arquivo de configuração para armazenar todas as suas diferentes conexões SSH. Para usar um arquivo de configuração SSH, clique no indicador remoto para exibir os comandos remotos, escolha Abrir arquivo de configuração e selecione o arquivo que segue o caminho "Usuários / {nome_do_usuário} / .Ssh / config".

Aqui está um exemplo de um arquivo de configuração SSH:
# Read more about SSH config files: https://linux.die.net/man/5/ssh_config Host python-linux-vm HostName <vm address> User sana IdentityFile ~/.ssh/id_python_vm Host node-vm HostName <vm address> User sana Port 5522 IdentityFile ~/.ssh/id_node_vm
Há muito mais
opções de configuração que você pode especificar no formato do arquivo de configuração SSH. Você obterá conclusões e colorizações neste arquivo e poderá pressionar (paceSpace) para o IntelliSense para aprender mais sobre as opções de configuração.
As opções usadas acima são:
Você pode adicionar as informações de todos os hosts que você possui. Depois de salvar o arquivo de configuração, você poderá ver os hosts no Remote Explorer, bem como as pastas que você abriu nesse host. Você pode selecionar o ícone ao lado de cada host ou pasta e ele abrirá uma nova janela de código VS (instância) e conectará você a esse host. Na captura de tela abaixo, eu estou conectado à minha máquina remota "python-linux-vm" e o Remote Explorer mostra as pastas às quais eu me conectei no passado, bem como quaisquer portas encaminhadas da máquina remota.

Proxycommand
Às vezes, pode ser necessário conectar-se do seu desktop ou laptop a uma máquina remota na intranet da empresa ou atrás de um firewall. Nesse caso, você pode estar usando um servidor intermediário ou uma
caixa de salto . Esse tipo de configuração é útil se você estiver trabalhando em um sistema seguro configurado para aceitar apenas conexões SSH de um conjunto fixo de hosts.
Para usar uma configuração de caixa de salto com a extensão Remote - SSH, você pode usar a opção de configuração
ProxyCommand
. Essa configuração abrirá uma conexão SSH em segundo plano na caixa de salto e, em seguida, será conectada através de um endereço IP privado ao destino.
Você pode definir a opção de configuração
ProxyCommand
no arquivo de configuração SSH da seguinte maneira:
# Jump box with public IP address Host jump-box HostName 52.179.157.97 User sana IdentityFile ~/.ssh/jumpbox # Target machine with private IP address Host target-box HostName <IP address of target> User sana IdentityFile ~/.ssh/target ProxyCommand ssh -q -W %h:%p jump-box
Controlmaster
Se você estiver se conectando a um host SSH remoto usando outros métodos de autenticação além da autenticação baseada em chave, como dois fatores, com base em senha ou uma chave SSH com uma senha, talvez seja necessário inserir as informações necessárias várias vezes.
Em vez de abrir várias conexões SSH, você pode usar a opção
ControlMaster
(apenas em clientes macOS / Linux) para reutilizar uma conexão existente e reduzir o número de vezes que você deve digitar sua senha.
Para usar esse recurso, adicione o seguinte ao seu arquivo de configuração SSH:
Host * ControlMaster auto ControlPath ~/.ssh/sockets/%r@%h-%p ControlPersist 600
Máquina remota offline
Se você estiver restrito por um firewall ou sua empresa bloquear suas VMs e elas não conseguirem se conectar à Internet, a extensão Remote - SSH não poderá se conectar à sua VM porque o VS Code precisará fazer o download de um componente chamado VS Code Server para a máquina remota.
No entanto, agora você pode resolver esse problema com uma nova
configuração de usuário na extensão Remote - SSH. Se você habilitar a configuração
remote.SSH.allowLocalServerDownload
, a extensão instalará o VS Code Server no cliente primeiro e depois a copiará para o servidor via SCP.
Nota: Atualmente, esse é um recurso experimental, mas será ativado por padrão na próxima versão.
Remoto - extensão SSH Nightly
Se você estiver interessado em testar novas atualizações e recursos experimentais assim que disponíveis, instale a
extensão Remote - SSH Nightly (desinstale a extensão estável Remote-SSH primeiro). Esta é a construção noturna da extensão em que experimentamos novos recursos e configurações antes de liberá-los para a versão estável.