Ao es­ta­be­le­cer uma conexão PowerShell SSH, você poderá acessar e ad­mi­nis­trar sistemas remotos de pra­ti­ca­mente qualquer lugar. Ainda, o protocolo de segurança SSH oferece recursos de registro mi­nu­ci­o­sos, que pos­si­bi­li­tam abran­gen­tes mo­ni­to­ra­mento e acom­pa­nha­mento das ati­vi­da­des do servidor.

Pré-re­qui­si­tos para es­ta­be­le­cer conexão PowerShell SSH

Se você es­ta­be­le­cer uma conexão entre o Windows PowerShell e um servidor pelo protocolo de rede SSH, con­se­guirá acessar sistemas re­mo­ta­mente, além de executar comandos SSH em scripts PowerShell. Isso lhe fa­ci­li­tará a gestão e a automação de tarefas em in­fra­es­tru­tu­ras dispersas e em ambientes he­te­ro­gê­neos, que incluem tanto o Windows quanto outros sistemas ope­ra­ci­o­nais.

Antes de es­ta­be­le­cer uma conexão PowerShell SSH, você precisará de:

  • PowerShell: Verifique se o PowerShell já está instalado no seu com­pu­ta­dor local. Via de regra, ele vem pré-instalado no Windows, mas é sempre in­te­res­sante que você confirme se possui uma versão que suporta SSH (versão 6 ou superior).
  • Fer­ra­menta SSH: Você precisará de um cliente SSH no seu ambiente PowerShell para es­ta­be­le­cer conexões por esse protocolo de rede. Nos Windows 10 e 11, e no Windows Server 2019, o cliente OpenSSH vem instalado por padrão. Contudo, se você usa uma versão diferente do Windows, terá de instalar o OpenSSH ma­nu­al­mente.
  • Servidor SSH: Servidor SSH é o servidor de destino, ou seja, o servidor que receberá a conexão. Este pode ser um servidor Linux, um dis­po­si­tivo de rede ou qualquer outro host que oferece suporte ao SSH.
  • Acesso à rede: Seu com­pu­ta­dor local deve conseguir acessar a rede para que possa se conectar re­mo­ta­mente ao servidor por SSH. Para tanto, nas regras do firewall, a porta 22 deve estar aberta para o protocolo.
  • Módulo PowerShell: Alguns módulos do PowerShell foram es­pe­ci­al­mente criados para conexões SSH, como o “PSSession” e o “Posh-SSH”. Para fazer uso do SSH no PowerShell, cer­ti­fi­que-se se o módulo adeuqado está instalado no seu sistema.
  • Per­mis­sões: Para es­ta­be­le­cer conexões SSH a partir do seu com­pu­ta­dor local e acessar um servidor re­mo­ta­mente, você precisa ter direitos de ad­mi­nis­tra­dor ou per­mis­sões avançadas, além de estar em posse da res­pec­tiva senha ou chave SSH.
Dedicated Servers
Per­for­mance through in­no­va­tion

O encontro do hardware com a nuvem: servidor dedicado com nuvem integrada e cobrança por minuto, incluindo as­sis­tente pessoal!

  • Dedicated en­ter­prise hardware
  • Con­fi­gu­ra­ble hardware equipment
  • ISO-certified data centers

Passo a passo para es­ta­be­le­cer conexão PowerShell SSH

Antes de utilizar o protocolo de rede Secure Socket Shell (SSH) no PowerShell, você deverá con­fi­gu­rar o cliente OpenSSH. Somente assim você con­se­guirá conectar o PowerShell a um servidor por SSH, para a execução de comandos remotos em sistemas.

Passo 1: Instalar o OpenSSH

Na busca da barra de fer­ra­men­tas do Windows, digite “PowerShell” e, em seguida, selecione “Executar como ad­mi­nis­tra­dor”, para que o ambiente de linha de comando seja aberto com as devidas per­mis­sões. Com o seguinte comando, você poderá instalar o OpenSSH no seu com­pu­ta­dor Windows:

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
powershell

Passo 2: Iniciar o OpenSSH

Após concluir a ins­ta­la­ção dele, será hora de iniciar o cliente OpenSSH:

Start-Service sshd
powershell

Para verificar se o OpenSSH está fun­ci­o­nando nor­mal­mente, você pode usar este comando:

Get-Service sshd
powershell

O status Running indica que o sshd está rodando sem erros.

Imagem: O status Running mostra que o cliente OpenSSH está rodando corretamente no seu computador
No PowerShell, o comando Get-Service sshd verifica a execução do OpenSSH pelo seu sistema ope­ra­ci­o­nal

Passo 3: Iniciar o OpenSSH au­to­ma­ti­ca­mente

Para ativar o OpenSSH atu­o­ma­ti­ca­mente toda vez que o seu Windows for iniciado, insira o comando abaixo no ambiente de linha de comando:

Set-Service -Name sshd -StartupType 'Automatic'
powershell

Passo 4: Ajustar o firewall

Se o firewall do seu Windows estiver ativo, você precisará adicionar uma nova regra para que ele permita o tráfego de dados SSH pela porta 22 (porta padrão para SSH):

New-NetFirewallRule -Name 'OpenSSH-Server' -DisplayName 'OpenSSH Server' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
powershell

Passo 5: Es­ta­be­le­cer conexão PowerShell SSH

Depois de executar os quatro primeiros passos, você já poderá acessar ser­vi­do­res por SSH, a partir do PowerShell. Para isso, inicie o PowerShell no seu com­pu­ta­dor local e digite o comando ssh seguido do nome de usuário e do endereço do servidor:

ssh username@servername
powershell

Antes de pres­si­o­nar o [Enter], substitua “username” pelo seu nome de usuário do servidor e “ser­ver­name” pelo endereço IP ou pelo nome do host do mesmo servidor. Ao executar esse comando, você será so­li­ci­tado a inserir a res­pec­tiva, a não ser que utilize uma chave SSH como método de au­ten­ti­ca­ção.

Imagem: Código no PowerShell estabelece conexão remota por SSH
Você terá de saber seu nome de usuário SHH, o nome ou IP do servidor e a sua senha SSH para conseguir es­ta­be­le­cer uma conexão PowerShell SSH

Passo 6: Pos­si­bi­li­da­des de conexões PowerShell SSH

Ao es­ta­be­le­cer uma conexão PowerShell SSH, você poderá executar comandos no servidor remoto como se estivesse acessando-o fi­si­ca­mente. Para encerrar a conexão PowerShell SSH e voltar a usar o PowerShell lo­cal­mente, insira o comando exit.

Diversos comandos SSH podem ser usados no PowerShell. Por exemplo, o comando pwd (print working directory), que explicita o diretório de trabalho atual:

Imagem: Comandos SSH pwd aplicado ao PowerShell
O PowerShell suporta a execução de di­fe­ren­tes comandos SSH

Abaixo, reunimos para você os prin­ci­pais comandos SSH que podem ser usados no PowerShell:

  • ls/dir: Exibir o conteúdo de um diretório.
  • cd: Mudar de diretório no servidor remoto.
  • touch/New-Item: Criar um novo arquivo.
  • rm/Remove-Item: Excluir arquivos ou di­re­tó­rios.
  • mv/Move-Item: Mover ou renomear arquivos e di­re­tó­rios.
  • useradd: Adicionar um usuário.
  • scp: Trans­fe­rir arquivos entre cliente e servidor.

Este artigo do nosso Digital Guide apresenta os prin­ci­pais comandos PowerShell. Conheça-os para se es­pe­ci­a­li­zar ainda mais nesse ambiente de linha de comando.

Ir para o menu principal