Android

Comando ssh

Primeiros Comandos SSH | Update e HostName

Primeiros Comandos SSH | Update e HostName

Índice:

Anonim

O Secure Shell (SSH) é um protocolo de rede criptográfico usado para uma conexão criptografada entre um cliente e um servidor. O cliente ssh cria uma conexão segura com o servidor SSH em uma máquina remota. A conexão criptografada pode ser usada para executar comandos no servidor, encapsulamento X11, encaminhamento de porta e muito mais.

Há vários clientes SSH disponíveis gratuitos e comerciais, sendo o OpenSSH o cliente mais utilizado. Está disponível em todas as principais plataformas, incluindo Linux, OpenBSD, Windows, macOS e outras.

, explicaremos como usar o cliente de linha de comando OpenSSH ( ssh ) para efetuar login em uma máquina remota e executar comandos ou executar outras operações.

Instalando o cliente OpenSSH

O programa cliente OpenSSH é chamado ssh e pode ser chamado a partir do terminal. O pacote do cliente OpenSSH também fornece outros utilitários SSH, como scp e sftp instalados ao lado do comando ssh .

Instalando o OpenSSH Client no Linux

O cliente OpenSSH é pré-instalado na maioria das distribuições Linux por padrão. Se o seu sistema não tiver o cliente ssh instalado, você poderá instalá-lo usando o gerenciador de pacotes da sua distribuição.

Instalando o OpenSSH no Ubuntu e Debian

sudo apt update sudo apt install openssh-client

Instalando o OpenSSH no CentOS e Fedora

sudo dnf install openssh-clients

Instalando o OpenSSH Client no Windows 10

A maioria dos usuários do Windows está usando o Putty para conectar-se a uma máquina remota via SSH. No entanto, as versões mais recentes do Windows 10 incluem um cliente e servidor OpenSSH. Ambos os pacotes podem ser instalados via GUI ou PowerShell.

Para encontrar o nome exato do pacote OpenSSH, digite o seguinte comando:

Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

O comando deve retornar algo como isto:

Name: OpenSSH.Client~~~~0.0.1.0 State: NotPresent Name: OpenSSH.Server~~~~0.0.1.0 State: NotPresent

Depois de saber o nome do pacote, instale-o executando:

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

Com sucesso, a saída será mais ou menos assim:

Path: Online: True RestartNeeded: False

Instalando o OpenSSH Client no macOS

O macOS é enviado com o cliente OpenSSH instalado por padrão.

Como usar o comando ssh

Os seguintes requisitos devem ser atendidos para poder efetuar login em uma máquina remota via SSH:

  • Um servidor SSH deve estar em execução na máquina remota. A porta SSH deve estar aberta no firewall da máquina remota. Você deve saber o nome de usuário e a senha da conta remota. A conta precisa ter privilégios adequados para login remoto.

A sintaxe básica do comando ssh é a seguinte:

ssh:HOST

Para usar o comando ssh abra seu Terminal ou PowerShell e digite ssh seguido pelo nome do host remoto:

ssh ssh.linuxize.com

Quando você se conecta a uma máquina remota através do SSH pela primeira vez, verá uma mensagem como abaixo.

The authenticity of host 'ssh.linuxize.com (192.168.121.111)' can't be established. ECDSA key fingerprint is SHA256:Vybt22mVXuNuB5unE++yowF7lgA/9/2bLSiO3qmYWBY. Are you sure you want to continue connecting (yes/no)?

Cada host possui uma impressão digital exclusiva que é armazenada no ~/.ssh/known_hosts .

Digite yes para armazenar a impressão digital remota e você será solicitado a digitar sua senha.

Warning: Permanently added 'ssh.linuxize.com' (ECDSA) to the list of known hosts. [email protected]'s password:

Depois de digitar a senha, você será conectado à máquina remota.

Quando o nome de usuário não é fornecido, o comando ssh usa o nome de login do sistema atual.

Para efetuar login como um usuário diferente, especifique o nome de usuário e o host no seguinte formato:

ssh username@hostname

O nome de usuário também pode ser especificado com a opção -l :

ssh -l username hostname

Por padrão, quando nenhuma porta é fornecida, o cliente SSH tentará se conectar ao servidor remoto na porta 22. Em alguns servidores, os administradores estão alterando a porta SSH padrão para adicionar uma camada extra de segurança ao servidor, reduzindo o risco de ataques automatizados.

Para conectar-se a uma porta não padrão, use a opção -p para especificar a porta:

ssh -p 5522 username@hostname

ssh -v username@hostname

Para aumentar o nível de verbosidade, use -vv ou -vvv .

O comando ssh aceita várias opções.

Para obter uma lista completa de todas as opções, leia a página de man ssh digitando man ssh no seu terminal.

Arquivo de configuração SSH

O cliente OpenSSH lê as opções definidas no arquivo de configuração por usuário ( ~/.ssh/config ). Nesse arquivo, você pode armazenar opções diferentes de SSH para cada máquina remota à qual você se conecta.

Um exemplo de configuração SSH é mostrado abaixo:

Host dev HostName dev.linuxize.com User mike Port 4422

Quando você invoca o cliente ssh digitando ssh dev o comando lê o ~/.ssh/config e usa os detalhes da conexão especificados para o host dev. Neste exemplo, ssh dev é equivalente ao seguinte:

ssh -p 4422 [email protected]

Para mais informações, consulte o artigo no arquivo de configuração SSH.

Autenticação de chave pública

O protocolo SSH suporta vários mecanismos de autenticação.

O mecanismo de autenticação baseada em chave pública permite que você efetue login no servidor remoto sem precisar digitar sua senha.

Este método funciona gerando um par de chaves criptográficas usadas para autenticação. A chave privada é armazenada no dispositivo cliente e a chave pública é transferida para cada servidor remoto em que você deseja efetuar login. O servidor remoto deve ser configurado para aceitar a autenticação de chave.

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Você será solicitado a digitar uma senha segura. Se você deseja usar a senha, é com você.

Depois de ter seu par de chaves, copie a chave pública para o servidor remoto:

ssh-copy-id username@hostname

Digite a senha do usuário remoto e a chave pública será anexada ao arquivo author_keys do usuário remoto.

Depois que a chave é carregada, você pode efetuar login no servidor remoto sem ser solicitada uma senha.

Ao definir uma autenticação baseada em chave, você pode simplificar o processo de login e aumentar a segurança geral do servidor.

Encaminhamento de porta

O encapsulamento SSH ou o encaminhamento de porta SSH é um método para criar uma conexão SSH criptografada entre um cliente e uma máquina servidor através da qual as portas de serviços podem ser retransmitidas.

O encaminhamento SSH é útil para transportar dados de rede de serviços que usam um protocolo não criptografado, como VNC ou FTP, acessando conteúdo com restrição geográfica ou ignorando firewalls intermediários. Basicamente, você pode encaminhar qualquer porta TCP e encapsular o tráfego em uma conexão SSH segura.

Existem três tipos de encaminhamento de porta SSH:

Encaminhamento de porta local

O encaminhamento de porta local permite encaminhar uma conexão do host do cliente para o host do servidor SSH e depois para a porta do host de destino.

Para criar um encaminhamento de porta local, passe a opção -L para o cliente ssh :

ssh -L LOCAL_PORT:DESTINATION_HOST:DESTINATION_PORT -N -f username@hostname

A opção -f informa ao comando ssh para executar em segundo plano e -N para não executar um comando remoto.

Encaminhamento de porta remota

O encaminhamento de porta remota é o oposto do encaminhamento de porta local. Encaminha uma porta do host do servidor para o host do cliente e depois para a porta do host de destino.

A opção -L diz ao ssh para criar um encaminhamento de porta remota:

ssh -R REMOTE_PORT:DESTINATION:DESTINATION_PORT -N -f username@hostname

Encaminhamento dinâmico de porta

O encaminhamento de porta dinâmico cria um servidor proxy SOCKS que permite a comunicação em várias portas.

Para criar um encaminhamento de porta dinâmico (SOCKS), passe a opção -D para o cliente ssh:

ssh -D LOCAL_PORT -N -f username@hostname

Para obter informações mais detalhadas e instruções passo a passo, consulte o artigo sobre Como configurar o encapsulamento SSH (encaminhamento de porta).

Conclusão

Para conectar-se a um servidor remoto via SSH, use o comando ssh seguido pelo nome de usuário e nome de host remotos ( ssh username@hostname ).

Saber como usar o comando ssh é essencial para gerenciar o servidor remoto.

terminal ssh