Publicados
Se você precisar usar SSH no Linux para gerenciar remotamente outros computadores, este guia irá orientá-lo nesse processo.
No cenário interconectado atual, a capacidade de gerenciar computadores de diferentes localizações geográficas passou de luxo a necessidade. Existem diversas maneiras de fazer isso, dependendo do sistema operacional em uso. Para Sistemas baseados em Linux, a maneira mais comum e segura de gerenciar seu PC remotamente é usar SSH (ou Capsula segura).
Vamos ver como usar SSH no Linux para conectar-se a outros computadores.
Primeiros passos essenciais
Antes de poder se conectar com êxito a outro computador Linux com SSH, você precisará atender aos seguintes pré-requisitos:
- O computador de destino deve permanecer ligado e conectado a uma rede.
- O software cliente e servidor necessário deve ser instalado e ativado.
- Você precisará saber o endereço IP ou nome do host da máquina de destino.
- Permissões apropriadas para acesso remoto devem estar em vigor.
- As configurações de firewall no computador remoto devem permitir a conexão de entrada.
Se você estiver acessando um computador Linux administrado, digamos, por sua empresa de hospedagem na web, eles já deveriam ter cuidado de tudo isso. Em seguida, pode ser necessário fazer alguma instalação básica de software em seu próprio computador Linux.
Usando SSH no Linux: um guia prático
Estabelecer uma conexão SSH funcional requer módulos de software cliente e servidor. OpenSSH serve como um alternativa de código aberto predominantemente para plataformas Linux.
Para instalar o cliente OpenSSH adequado, você precisará de acesso ao terminal em sua máquina local. Observe que os sistemas Ubuntu não possuem um servidor SSH pré-instalado.
Instalando um cliente OpenSSH
Antes de se aprofundar no processo de instalação, você deve verificar se o cliente SSH ainda não está lá. Para fazer isso, basta abra uma janela de terminal. Você pode pesquisar por “terminal” ou pressionar ctrl+alt+t no seu teclado.
Uma vez na janela do terminal, teste a presença do cliente SSH digitando o seguinte:
$ ssh
Se o computador Linux já tiver um cliente SSH instalado, você verá as seguintes informações rolando pela tela.
usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface] [-b bind_address] [-c cipher_spec] [-D [bind_address:]port] [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11] [-i identity_file] [-J [user@]host[:port]] [-L address] [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address] [-S ctl_path] [-W host: port] [-w local_tun[:remote_tun]] destination [command [argument ...]]
Se, em vez disso, você receber uma reclamação sobre o arquivo não ter sido encontrado, você precisará prosseguir com a instalação do cliente OpenSSH. Felizmente, isso é bastante simples.
No Ubuntu e outras instalações baseadas em Debian, basta executar o seguinte comando no Terminal:
$ sudo apt install openssh-client
Se você estiver executando o Fedora ou outra distribuição que usa hummm em vez de apto, basta executar este comando:
$ sudo yum -y install openssh-clients
Os sistemas Fedora mais recentes podem usar dnf em vez de. Se isso soa como você, o comando mágico é:
$ sudo dnf install -y openssh-clients
Siga as instruções na tela e você estará pronto para começar rapidamente.
Iniciando uma conexão SSH
Depois de certificar-se de que o cliente SSH está instalado em seu computador Linux, é hora de iniciar a primeira conexão. Enquanto você ainda está na janela do terminal, emita o seguinte comando:
$ ssh username@host_ip_address
Se os nomes de usuário corresponderem nas máquinas locais e remotas, basta digitar:
$ ssh host_ip_address
Na primeira vez que você se conectar, você será recebido com uma mensagem perguntando se deseja continuar se conectando ao computador desconhecido. Neste ponto, digite sim E continue.
Digite sua senha, sabendo que você não receberá nenhum feedback na tela durante a entrada. Uma vez feito isso, você deverá estar conectado ao servidor remoto e poderá começar a realizar qualquer tarefa necessária naquele computador.
Compreendendo o SSH: uma visão geral de alto nível
Secure Shell, ou SSH – ocasionalmente denominado Secure Socket Shell – é um protocolo que permite conectividade segura a servidores ou computadores remotos por meio de uma interface baseada em texto.
Ao autenticar um canal SSH seguro, uma sessão shell é inicializada, permitindo a interação de linha de comando de sua máquina local.
Este protocolo é bem conhecido e apreciado por administradores de sistemas e redes, bem como por qualquer pessoa que precise de gerenciamento remoto seguro de máquinas.
Mecânica da funcionalidade SSH
O estabelecimento de um canal SSH exige a colaboração de dois componentes essenciais: uma aplicação do lado do cliente e sua contraparte do lado do servidor. O aplicativo cliente inicia a conexão fornecendo credenciais de host remoto.
Se verificado, o software cria um canal criptografado entre os dois computadores. Na máquina remota, um daemon SSH verifica continuamente uma porta TCP/IP designada em busca de possíveis solicitações de conexão.
Após o recebimento, o daemon transmite seus recursos de software e protocolo, e ambas as entidades trocam dados de identificação. Uma sessão criptografada ocorre se as credenciais corresponderem, predominantemente por meio do protocolo SSH versão 2.
Uso avançado de SSH: armazenando sua chave de criptografia para evitar inserir uma senha
Agora, digamos que você queira evitar ter que coloque sua senha cada vez que você faz login em um servidor remoto. Para uma conexão segura e sem senha com outro computador, uma chave SSH (Secure Shell) é indispensável.
Você já pode possuir essa chave, mas gerar uma nova nunca é uma má ideia. Originada no seu computador local, uma chave SSH é dividida em dois elementos distintos: uma chave privada confidencial – que nunca será divulgada – e sua contraparte pública. Essa chave pública é então disseminada em qualquer sistema remoto no qual você precise fazer login.
Algumas pessoas podem optar por uma chave SSH para uma infinidade de aplicativos, desde logins de sistema remoto até GitLab. Uma chave para governar todos eles, você poderia dizer. No entanto, minha abordagem é mais granular. Eu uso chaves diferentes, cada uma projetada para um subconjunto específico de tarefas.
Por exemplo, utilizo uma chave dedicada para máquinas locais na minha rede doméstica, outra chave exclusiva chave para servidores web sob minha administração e ainda outra chave exclusiva para interagir com o Git anfitriões.
Criando um novo par de chaves SSH
Veja como você pode criar uma nova chave SSH e copiá-la para o servidor remoto no qual deseja usá-la. Primeiro, crie a chave usando ssh-keygen.
$ ssh-keygen -t ed25519 -f /.ssh/lan
A bandeira -t especifica o tipo de chave a ser criada, garantindo que a criptografia seja superior ao padrão. O -f flag define o nome e a localização do arquivo da chave.
Ao emitir este comando, você será solicitado a criar uma senha para a chave. Essa senha, se você a definir, permanecerá local e não será enviada pela rede.
Enviando sua chave SSH para o servidor remoto
Em seguida, você precisará enviar essa chave de segurança para o servidor remoto. Para fazer isso, basta emitir este comando:
$ ssh-copy-id -i /.ssh/lan.pub user@host_ip_address
Será solicitada sua senha de login no host remoto. Porém, assim que o processo for concluído, sua chave será instalada nesse computador.
Você deve testar tentando fazer login no computador remoto. Quando você fizer ssh no host remoto novamente, será solicitada a senha da chave, se você definir uma. Esta não é sua senha de login, lembre-se. É a senha específica dessa chave SSH.
Em muitas distribuições, incluindo Linux, esse prompt de senha será aberto como uma caixa de diálogo. Como você pode ver no exemplo abaixo, você pode marcar uma caixa para que o computador Linux lembre a senha. Isso reduzirá a segurança da chave, no entanto.
Depois de inserir a senha da sua chave SSH, você não precisará digitá-la novamente até sair do computador local.
Outras maneiras de usar SSH
Feito tudo isso, você está pronto para usar o SSH para acesso remoto a outros computadores baseados em Linux ou Unix. Claro, não se trata apenas de acessar o prompt de comando.
O SSH também inclui uma forma segura de transferir arquivos entre computadores sem usar FTP. Você pode usar Secure Copy, ou scp, para mover esses arquivos. Se você é usuário do Windows 11 e precisa usar SSH, está com sorte, pois o cliente está pré-instalado. Você pode até mesmo gerar e usar Chaves SSH no Windows 11.