One place for hosting & domains

      Como usar o Visual Studio Code para o desenvolvimento remoto por meio do plug-in Remote-SSH


      Introdução

      O Visual Studio Code é um Ambiente integrado de desenvolvimento (IDE) para desenvolvedores. Sua grande seleção de plug-ins, de design mínimo e suporte multiplataforma tornam-no uma ótima escolha para os desenvolvedores de todos os níveis. Este tutorial se concentra no uso do plug-in Remote-SSH para habilitar o desenvolvimento de softwares remotos. Com esse plug-in , você pode editar arquivos na sua estação de trabalho local, mas executar tarefas de desenvolvimento, como a execução do programa, testes de unidade ou análise estática, em um servidor remoto.

      Há muitas razões para que isso seja benéfico para você. Por exemplo, você pode ter uma estação de trabalho Windows e querer desenvolver no Windows, mas seu código acabará sendo executado no Linux. Você pode precisar de mais RAM ou poder de processamento do que sua máquina atual tem disponível, ou querer manter o código fora da sua máquina pessoal devido a uma política de empresa ou pela vontade de manter sua estação de trabalho inalterada.

      Neste tutorial, você irá habilitar o plug-in Remote-SSH, configurar o Visual Studio Code para executar o código no servidor remoto e executar o código de sua instalação local do Visual Studio Code no servidor remoto.

      Pré-requisitos

      Para acompanhar este guia, você vai precisar do seguinte:

      • Uma máquina local de desenvolvimento executando o Windows, MacOSX ou Linux. Este tutorial não funcionará nos dispositivos ChromeOS.
      • O Visual Studio Code, que pode ser baixado e instalado no site oficial.
      • Um par de chaves SSH gerado:
      • Um servidor Ubuntu 18.04 configurado conforme o Guia de configuração inicial do servidor Ubuntu 18.04, incluindo um usuário não raiz habilitado para o sudo e um firewall.

      Passo 1 — Instalando o plug-in Remote-SSH

      O Marketplace de extensões é o local onde pode você pode baixar extensões compatíveis e de terceiros para uma variedade de ferramentas e linguagens de programação diferentes. É aqui que você procurará pelo plug-in Remote-SSH e o instalará

      No lado esquerdo da IDE, há uma linha vertical de cinco ícones. O ícone mais abaixo, que se parece com quatro quadrados em uma caixa, estando o do topo direito descolando, é o ícone para o Marketplace de extensões:

      Localização do ícone do Marketplace de extensões

      Você também pode acessar essa seção pressionando Ctrl+Shift+X. Quando a página for aberta, você verá os plug-ins sugeridos para baixar e instalar.

      Assim que tiver o Marketplace de extensões aberto, digite Remote-SSH na barra de busca Search Extensions in Marketplace. Quando encontrar o plug-in, selecione-o e, em seguida, clique no botão verde Install para instalar a extensão.

      Procurando pelo plug-in Remote-SSH

      A extensão agora está instalada. Em seguida, você configurará a extensão para que você consiga conectar-se ao seu servidor.

      Passo 2 — Configurando o plug-in Remote-SSH e conectando-se ao seu servidor

      Agora que o plug-in está instalado, você pode configurá-lo para que se conecte a um servidor. Para fazer isso, serão necessárias as seguintes informações:

      • O IP ou nome do host do servidor.
      • O nome de usuário com o qual você se conectará.
      • A chave privada que você usará para autenticar seu usuário.

      Você usará essas informações para criar um arquivo de configuração SSH, que o Visual Studio Code pode usufruir para usar o SSH no servidor para sincronizar os arquivos e executar códigos em seu nome. Essa configuração será criada usando o Visual Studio Code.

      Agora que você tem o plug-in Remote-SSH instalado, verá uma pequena caixa verde no canto inferior esquerdo da interface do Visual Studio Code. Se você passar o ponteiro do mouse pela caixa, o pop-up dirá Open a remote window (Abrir uma janela remota). O botão se parece com um sinal “maior que” abaixo de um sinal “menor que” ><, como o da seguinte imagem:

      Botão de UI verde para abrir uma janela remota

      Clique no botão e uma caixa de diálogo aparece no centro superior. Selecione Remote-SSH: Open Configuration File… da lista:

      Selecionando configurar SSH na UI

      O próximo prompt perguntará qual arquivo de configuração você deseja abrir. Se estiver no Windows, verá duas localizações: uma no seu diretório de usuário pessoal e outra na localização de instalação para o SSH. Você deve utilizar o arquivo no seu diretório de usuário enquanto estiver configurando o servidor.

      Selecione o arquivo e seu editor abrirá o arquivo config. Adicione o código a seguir ao arquivo para definir a conexão com seu servidor, substituindo as seções destacadas pelas informações do seu servidor:

      config

      Host my_remote_server
          HostName your_server_ip_or_hostname
          User sammy
          IdentityFile /location/of/your/private/key
      

      Aqui está como este arquivo de configuração funciona:

      • Host: especifica um nome para seu host. Isso permite que você use como alternativa um nome curto ou uma abreviação, em vez do endereço IP completo ou nome do host ao se conectar ao servidor.
      • HostName: o nome real do host do servidor, que é um endereço IP ou um nome de domínio totalmente qualificado.
      • User: o usuário com o qual você deseja se conectar.
      • IdentityFile: o caminho para sua chave SSH privada. Em sistemas Mac e Linux, você encontrará isso em seu diretório base, em um diretório .ssh escondido, chamado normalmente de id_rsa. Se estiver no Windows, você terá especificado um local para salvar este arquivo quando o criou usando o putty-gen.

      Especifique os valores apropriados no seu arquivo e salve o arquivo.

      O Visual Studio Code está agora configurado e pronto para se conectar ao seu servidor. Clique no botão verde Open a remote window, no canto inferior esquerdo e selecione Remote-SSH: Connect to Host…

      Conectando-se ao servidor através do Visual Studio Code

      Assim que tiver feito isso, todos os servidores disponíveis e configurados aparecerão no menu suspenso. Selecione o servidor ao qual você deseja se conectar dessa lista.

      Se essa é a primeira vez que você se conecta a este servidor de sua máquina, provavelmente será exibido um diálogo de verificação do SSH Fingerprint, como a da seguinte imagem:

      Confirmando seu SSH Fingerprint

      Isso é para garantir que você esteja se conectando ao servidor correto. É possível verificar isso fazendo login manualmente e executando ssh-keygen -l -f /etc/ssh/ssh_host_key.pub para visualizar as impressões digitais do servidor. Se essa impressão for a mesma que aquela sendo apresentada a você no Visual Studio Code, então você de fato está se conectando ao servidor correto, logo, clique em Continue.

      Por padrão, o Visual Studio Code abre uma nova janela quando uma nova conexão é feita. Uma nova janela aparecerá com a tela de boas-vindas. Você saberá se sua conexão foi bem-sucedida caso veja SSH: your_ip_address_or_hostname na caixa verde no canto inferior esquerdo. Isso significa que o Visual Studio Code está conectado e se comunicando com seu servidor remoto.

      Conexão SSH bem-sucedida

      Agora que está conectado, execute comandos e códigos do seu editor.

      Passo 3 — Executando códigos no servidor remoto

      O plug-in Remote-SSH está configurado e é hora de executar algum código em sua máquina remota. Abra uma janela de terminal selecionando Terminal da barra de navegação no topo da janela do Visual Studio e clicando em New Terminal. Também é possível abrir um terminal pressionando CTRL+Shift+`. O terminal que é aberto é um terminal no seu servidor remoto, não um na sua máquina local.

      Quando o terminal abrir, emita o seguinte comando para visualizar o endereço IP do seu servidor para verificar se você está conectado ao seu servidor remoto:

      Você verá o seguinte resultado no seu terminal:

      Output

      1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 16:cb:05:5b:30:f1 brd ff:ff:ff:ff:ff:ff inet your_server_ip brd your_broadcast_address scope global eth0 valid_lft forever preferred_lft forever ...

      Para testar a capacidade de executar códigos remotos, crie um novo arquivo do Python chamado hello.py no seu editor. Quando estiver conectado ao seu servidor remoto, todos os arquivos criados através do Visual Studio Code serão salvos no servidor, não na sua máquina local.

      Adicione o conteúdo a seguir ao arquivo:

      hello.py

      print("Hello Sammy!")
      

      Para executar este programa no seu servidor, abra um terminal no Visual Studio Code por meio do menu de navegação ou pressionando a sequência de teclas CTRL+Shift+`. Como essa sessão de terminal está conectada ao seu servidor remoto, execute o seguinte comando no terminal para executar seu programa hello.py:

      O resultado do seu programa será exibido.

      Executando seu script em Python

      Também é possível executar o arquivo a partir do menu de contexto Debug, selecionando Run without Debugging.

      Nota: caso tenha qualquer extensão de desenvolvimento instalada no Visual Studio Code, como a extensão do Python, será necessário reinstalar essas extensões no seu servidor através do Marketplace de extensões. Caso já tenha instalado previamente esses plug-ins no Visual Studio Code, quando for procurar por eles novamente, o Marketplace dirá Install on SSH: hostname. Sempre tenha cuidado sobre qual o contexto de desenvolvimento em que você está, pois é aqui onde o Visual Studio Code instalará seus plug-ins e criará seus arquivos. Se tentar executar seu código sem esses plug-ins instalados, caixas de diálogo de erro aparecerão no canto inferior direito da tela, solicitando pela instalação deles no seu servidor remoto. Depois de instalá-los, eles provavelmente exigirão que você recarregue o Visual Studio Code. Quando você reiniciá-lo, ele continuará funcionando no servidor remoto, sem que você tenha que se reconectar manualmente.

      Conclusão

      Agora, você tem o Visual Studio Code configurado para o desenvolvimento em um servidor remoto usando o SSH. A execução remota com uma IDE traz muitos benefícios, incluindo a capacidade de testar rapidamente como seu código é executado em diferentes sistemas operacionais e diferentes especificações de hardware. Enquanto tiver uma conexão de Internet, você pode se conectar ao seu servidor e trabalhar em seu código de qualquer computador e será capaz de desenvolver usando um ambiente Linux, mesmo se estiver usando o Windows como seu sistema operacional primário.



      Source link

      Como configurar a autenticação por senha com o Apache no Ubuntu 18.04 [Início Rápido]


      Introdução

      Este tutorial trará um passo a passo sobre como proteger ativos em um servidor Web Apache em execução no Ubuntu 18.04. O cumprimento desses passos dará segurança adicional para seu servidor, de modo que usuários não autorizados não possam acessar certas partes de sua página.

      Para obter uma versão mais detalhada deste tutorial, com explicações mais detalhadas de cada passo, consulte o artigo sobre Como configurar a autenticação por senha com o Apache no Ubuntu 18.04.

      Pré-requisitos

      Para completar este tutorial, você precisará acessar o seguinte em um servidor Ubuntu 18.04:

      • Um usuário sudo no seu servidor

      • Um servidor de Web Apache2

      • Um site protegido com o protocolo SSL

      Passo 1 — Instalar o pacote de utilitários do Apache

      Instalaremos um serviço chamado htpasswd, que faz parte do pacote apache2-utils para gerenciar nomes de usuário e senhas de acesso ao conteúdo restrito.

      • sudo apt-get update
      • sudo apt-get install apache2-utils

      Passo 2 — Criar o arquivo de senha

      Criaremos o primeiro usuário do seguinte modo (substitua o `first_username pelo nome de usuário de sua escolha):

      • sudo htpasswd -c /etc/apache2/.htpasswd first_username

      Será solicitado que forneça e confirme uma senha para o usuário.

      Deixe o argumento -c para quaisquer usuários adicionais que queira adicionar para que você não substitua o arquivo:

      • sudo htpasswd /etc/apache2/.htpasswd another_user

      Passo 3 — Configurar a autenticação por senha do Apache

      Neste passo, precisamos configurar o Apache para verificar esse arquivo, antes de atender nosso conteúdo protegido. Faremos isso usando o arquivo de host virtual do site. Há, porém, outra opção detalhada no tutorial mais longo, caso não tenha acesso ou prefira usar os .htaccess.

      Abra o arquivo de host virtual que deseja adicionar uma restrição com um editor de texto, como o nano:

      • sudo nano /etc/apache2/sites-enabled/default-ssl.conf

      A autenticação é feita com base em cada diretório. Em nosso exemplo, iremos restringir o diretório base inteiro. Entretanto, você poderá alterar essa listagem para atingir um diretório específico, dentro do espaço Web.

      Neste passo, adicione as linhas destacadas no seu arquivo:

      /etc/apache2/sites-enabled/default-ssl.conf

      <VirtualHost *:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
      
        <Directory "/var/www/html">
            AuthType Basic
            AuthName "Restricted Content"
            AuthUserFile /etc/apache2/.htpasswd
            Require valid-user
        </Directory>
      </VirtualHost>
      

      Verifique a configuração com o seguinte comando:

      É possível reiniciar o servidor para implementar sua política de senha e, em seguida, verificar o status do seu servidor.

      • sudo systemctl restart apache2
      • sudo systemctl status apache2

      Passo 4 — Confirmar a autenticação por senha

      Para confirmar se o seu conteúdo está protegido, tente acessar seu conteúdo restrito em um navegador Web. Você deve receber um prompt com nome de usuário e senha:

      Prompt de senha do Apache2

      Tutoriais relacionados

      Aqui estão os links para os guias mais, detalhados relacionados a este tutorial:



      Source link

      Como configurar a autenticação por senha com o Apache no Ubuntu 18.04


      Introdução

      Como um administrador Web, pode ser interessante restringir o acesso de visitantes a algumas partes de um site, seja temporária ou permanentemente. Embora os aplicativos Web possam fornecer seus próprios métodos de autenticação e autorização, você também pode confiar no próprio servidor Web para restringir o acesso, se eles forem inadequados ou estiverem indisponíveis.

      Este tutorial traz um passo a passo sobre como proteger ativos com senha em um servidor Web do Apache que executa no Ubuntu 18.04, de modo a proporcionar mais segurança ao seu servidor.

      Pré-requisitos

      Para completar este tutorial, será necessário ter acesso a um servidor Ubuntu 18.04.

      Além disso, você precisará da seguinte configuração antes de começar:

      Quando tudo isso estiver funcionando, faça login no seu servidor como o usuário sudo e continue abaixo.

      Passo 1 — Instalando o pacote de utilitários do Apache

      Vamos começar atualizando nosso servidor e instalando um pacote que precisaremos. Para completar este tutorial, usaremos um utilitário chamado htpasswd, que faz parte do pacote apache2-utils, para criar o arquivo e gerenciar os nomes de usuários e senhas necessários para acessar conteúdo restrito.

      • sudo apt-get update
      • sudo apt-get install apache2-utils

      Com isso instalado, temos agora acesso ao comando htpasswd.

      Passo 2 — Criando o arquivo de senha

      O comando htpasswd nos permitirá criar um arquivo de senha que o Apache poderá usar para autenticar os usuários. Criaremos um arquivo oculto para esse fim, chamado .htpasswd, dentro do nosso diretório de configuração /etc/apache2.

      A primeira vez que usarmos esse utilitário, precisaremos adicionar a opção -c para criar o arquivo passwdfile especificado. Assim, especificamos um nome de usuário (sammy, neste exemplo) – no final do comando – para criar uma nova entrada dentro do arquivo:

      • sudo htpasswd -c /etc/apache2/.htpasswd sammy

      Você será solicitado a fornecer e confirmar uma senha para o usuário.

      Deixe o argumento -c para quaisquer usuários adicionais que queira adicionar para que não substitua o arquivo:

      • sudo htpasswd /etc/apache2/.htpasswd another_user

      Se visualizarmos o conteúdo do arquivo, podemos ver o nome de usuário e a senha criptografada de cada registro:

      • cat /etc/apache2/.htpasswd

      Output

      sammy:$apr1$.0CAabqX$rb8lueIORA/p8UzGPYtGs/ another_user:$apr1$fqH7UG8a$SrUxurp/Atfq6j7GL/VEC1

      Agora, temos nossos usuários e senhas em um formato que o Apache pode ler.

      Passo 3 — Configurando a autenticação por senha do Apache

      Neste passo, precisamos configurar o Apache para verificar esse arquivo antes de atender nosso conteúdo protegido. Podemos fazer isso de duas maneiras: diretamente no arquivo do host virtual de um site, ou colocando os arquivos .htaccess nos diretórios que precisam de restrição. Geralmente, é melhor usar o arquivo de host virtual. Porém, se você precisa permitir que os usuários não raiz gerenciem suas próprias restrições de acesso, verifique as restrições no controle de versão ao longo do site, ou caso já tenha um aplicativo Web que usa os arquivos .htaccess para outros fins, confira a segunda opção.

      Escolha a opção que melhor atenda às suas necessidades.

      Opção 1: configurando o controle de acesso dentro da definição de host Virtual (Preferencial)

      A primeira opção é editar a configuração do Apache e adicionar a proteção por senha ao arquivo do host virtual. De maneira geral, isso irá proporcionar um desempenho melhor, pois evita o custo de ler arquivos de configuração distribuídos. Essa opção exige acesso à configuração – que nem sempre está disponível; porém, quando de fato tiver acesso, é recomendável.

      Comece abrindo o arquivo de host virtual para o qual deseja adicionar uma restrição. No nosso exemplo, estaremos usando o arquivo default-ssl.conf, que contém o host virtual padrão instalado através do pacote Apache do Ubuntu. Abra o arquivo com um editor de texto de linha de comando, como o nano:

      • sudo nano /etc/apache2/sites-enabled/default-ssl.conf

      Ali dentro, com os comentários removidos, o arquivo deverá ficar parecido com este:

      /etc/apache2/sites-enabled/default-ssl.conf

      <VirtualHost *:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
      </VirtualHost>
      

      A autenticação é feita com base em cada diretório. Para configurar a autenticação, você precisará selecionar o diretório que deseja restringir com um bloco de <Directory ___>. No nosso exemplo, vamos restringir o diretório base inteiro, mas você pode modificar essa listagem para escolher um diretório específico dentro do espaço Web:

      /etc/apache2/sites-enabled/default-ssl.conf

      <VirtualHost *:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
      
        <Directory "/var/www/html">
        </Directory>
      </VirtualHost>
      

      Dentro desse bloco de diretório, especifique que estamos configurando a autenticação Basic (básica). Para o AuthName, escolha um nome de realm que será exibido para o usuário quando for solicitado por credenciais. Use a diretiva AuthUserFile para apontar o Apache para o arquivo de senha que criamos. Por fim, estabeleça como requisito que somente um valid-user poderá acessar esse recurso. Isto significa dizer que, se o usuário puder confirmar sua identidade através de uma senha, ele terá permissão para entrar:

      /etc/apache2/sites-enabled/default-ssl.conf

      <VirtualHost *:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
      
        <Directory "/var/www/html">
            AuthType Basic
            AuthName "Restricted Content"
            AuthUserFile /etc/apache2/.htpasswd
            Require valid-user
        </Directory>
      </VirtualHost>
      

      Salve e feche o arquivo quando você terminar. Se estiver usando o nano, você pode fazer isso pressionando CTRL+X seguido de Y e, depois, ENTER.

      Antes de reiniciar o servidor Web, verifique a configuração com o seguinte comando:

      • sudo apache2ctl configtest

      Se tudo estiver correto e você receber um Syntax OK como resultado, reinicie o servidor para implementar sua política de senha. Como o systemctl não mostra o resultado de todos os comandos de gerenciamento de serviços, usaremos o status para ter certeza de que o servidor está em funcionamento:

      • sudo systemctl restart apache2
      • sudo systemctl status apache2

      Agora, o diretório que você especificou deve estar protegido por senha.

      Opção 2: configurando o controle de acesso com arquivos .htaccess

      O Apache pode usar arquivos .htaccess para permitir que certos itens de configuração sejam definidos dentro de um diretório de conteúdo. Como o Apache precisa reler esses arquivos a cada pedido que envolva o diretório – o que pode ter impacto negativo no desempenho, a Opção 1 é preferencia. Porém, se você já estiver usando o arquivo .htaccess ou precisar permitir que usuários não raiz gerenciem restrições, os arquivos .htaccess fazem sentido.

      Para habilitar a proteção por senha usando arquivos .htaccess, abra o arquivo de configuração principal do Apache com um editor de texto de linha de comando, como o nano:

      • sudo nano /etc/apache2/apache2.conf

      Encontre o bloco <Directory> para o diretório /var/www que contém o diretório base. Ative o processamento do .htaccess, modificando a diretiva AllowOverride dentro desse bloco, de None para All:

      /etc/apache2/apache2.conf

      . . .
      
      <Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
      </Directory>
      
      . . .
      

      Salve e feche o arquivo quando você terminar. Se estiver usando o nano, você pode fazer isso pressionando CTRL+X seguido de Y e, depois, ENTER.

      Em seguida, precisamos adicionar um arquivo .htaccess ao diretório que queremos restringir. Em nossa demonstração, vamos restringir o diretório base inteiro (o site inteiro), que fica em /var/www/html, mas você pode colocar esse arquivo em qualquer diretório onde queira restringir o acesso:

      • sudo nano /var/www/html/.htaccess

      Dentro desse arquivo, especifique que queremos configurar a autenticação Basic. Para o AuthName, escolha um nome de realm que será exibido para o usuário quando for solicitado por credenciais. Use a diretiva AuthUserFile para apontar o Apache para o arquivo de senha que criamos. Por fim, vamos exigir um valid-user para acessar esse recurso, o que significa que alguém que consiga confirmar sua identidade com uma senha terá permissão para entrar:

      /var/www/html/.htaccess

      AuthType Basic
      AuthName "Restricted Content"
      AuthUserFile /etc/apache2/.htpasswd
      Require valid-user
      

      Salve e feche o arquivo. Reinicie o servidor Web para proteger com senha todo o conteúdo dentro ou abaixo do diretório com o arquivo .htaccess e use o systemctl status para verificar o sucesso da reinicialização:

      • sudo systemctl restart apache2
      • sudo systemctl status apache2

      O diretório que você especificou deve estar agora protegido por senha.

      Passo 4 — Confirmando a autenticação por senha

      Para confirmar se seu conteúdo está protegido, tente acessar seu conteúdo restrito em um navegador Web. Você deve receber um prompt de usuário e senha que se parece com este:

      Prompt de senha do Apache2

      Se digitar as credenciais corretas, você poderá acessar o conteúdo. Se digitar as credenciais erradas ou clicar em “Cancel” (cancelar), você verá a página de erro “Unauthorized” (não autorizado):

      Erro não autorizado do Apache2

      Conclusão

      Parabéns! Se você acompanhou o tutorial até este ponto, você já pode configuar a autenticação básica para o seu site.

      Há muito mais que pode ser feito com a configuração do Apache e .htaccess. Para aprender mais sobre a flexibilidade e a eficácia que estão disponíveis na configuração do Apache, teste um desses tutoriais:



      Source link