SSH remoto: dicas e hacks

Em uma postagem anterior no SSH remoto, vimos como configurar uma máquina virtual Linux e conectar-se a uma máquina virtual usando a extensão Remote-SSH no Visual Studio Code. Neste post, falaremos sobre 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 que você se conecte a uma máquina remota ou virtual usando SSH e tudo isso no VS Code. Se a extensão ainda não estiver instalada, você pode procurar por "ssh remoto" na guia "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 (local ou remoto) funciona. Clique no indicador para exibir uma lista de comandos de extensão remota.



Arquivo de configuração SSH


Em uma postagem anterior sobre SSH remoto, conectamos a apenas uma máquina e, quando solicitado, inserimos “user @ host”. Se você se conectar regularmente a vários servidores remotos ou máquinas virtuais locais, existe uma maneira melhor de se conectar sem precisar lembrar todos os nomes de usuários, endereços e parâmetros de configuração adicionais.

O OpenSSH suporta o uso de um arquivo de configuração para armazenar todas as suas várias conexões SSH. Para usar o arquivo de configuração SSH, clique no indicador remoto para chamar os comandos remotos, selecione "Abrir arquivo de configuração" e selecione o arquivo que está localizado em "Usuários / {nome do usuário} / .Ssh / config".



Aqui está um exemplo de arquivo de configuração SSH:

#      SSH: 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 

Existem muitas outras opções de configuração que você pode especificar no formato do arquivo de configuração SSH. Você obterá os complementos neste arquivo e poderá clicar em (paceSpace) no IntelliSense para aprender mais sobre as opções de configuração.

Opções usadas acima:
AnfitriãoUm alias fácil de lembrar para o seu host.
Nome do hostNome do host do servidor (você pode usar o endereço IP do servidor).
UsuárioO usuário que você especificou para efetuar login via SSH.
PortA porta usada para conectar-se através do SSH. A porta padrão é 22, mas se você especificou uma porta exclusiva, poderá configurá-la aqui.
IdentityFileO local do arquivo em que você salvou sua chave privada.
Você pode adicionar informações para todos os hosts que você possui. Depois de salvar o arquivo de configuração, você poderá ver esses nós no Remote Explorer, bem como quaisquer pastas que você abrir nesse nó. Você pode selecionar um ícone ao lado de cada host ou pasta e ele iniciará uma nova janela de código VS (instância) e conectará você a esse host. Na captura de tela abaixo, 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 redirecionadas da máquina remota.



Proxycommand


Às vezes, pode ser necessário conectar-se do seu computador desktop ou laptop a um computador remoto através da intranet da empresa ou atrás de um firewall. Nesse caso, você pode usar um servidor intermediário ou uma caixa de salto . Esse tipo de configuração é útil se você estiver executando um sistema seguro configurado para aceitar conexões SSH apenas de um conjunto fixo de hosts.

Para usar a configuração da caixa de salto com a extensão Remote - SSH, você pode usar o parâmetro de configuração ProxyCommand . Essa configuração abrirá a conexão SSH em segundo plano com a caixa de salto e, em seguida, se conectará através do endereço IP privado ao destino.

Você pode definir o parâmetro de configuração ProxyCommand no arquivo de configuração SSH da seguinte maneira:

 # Jump box   IP- Host jump-box HostName 52.179.157.97 User sana IdentityFile ~/.ssh/jumpbox #     IP- Host target-box HostName <IP address of target> User sana IdentityFile ~/.ssh/target ProxyCommand ssh -q -W %h:%p jump-box 

Controlmaster


Se você se conectar a um host SSH remoto usando métodos de autenticação diferentes da autenticação baseada em chave, como dois fatores, com base em senha ou uma chave SSH com uma senha, poderá ser 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 nos clientes macOS / Linux) para reutilizar uma conexão existente e reduzir o número de vezes que você precisa 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 

Computador remoto autônomo


Se você estiver limitado por um firewall ou sua empresa estiver bloqueando suas máquinas virtuais e elas não conseguirem se conectar à Internet, a extensão Remote - SSH não poderá se conectar à sua máquina virtual porque o VS Code deve baixar um componente chamado VS Code Server na máquina remota.

No entanto, agora você pode resolver esse problema com um novo parâmetro de usuário na extensão Remota - SSH. Se você ativar o parâmetro remote.SSH.allowLocalServerDownload , a extensão instalará primeiro o VS Code Server no cliente e depois o copiará para o servidor através do SCP.

Nota Atualmente, esse é um recurso experimental, mas será ativado por padrão em uma versão futura.

Remoto - extensão SSH Nightly


Se você quiser testar novas atualizações e recursos experimentais assim que estiverem disponíveis, instale a extensão Remota - SSH Nightly (primeiro remova a extensão Remota-SSH estável). Esta é uma compilação noturna da extensão, onde experimentamos novos recursos e configurações antes de adicioná-los à versão estável.

Source: https://habr.com/ru/post/pt472274/


All Articles