Destaque SecundárioDicasGeralSegurança

Lista de comando SSH úteis para administradores de sistemas Linux

Na dica de hoje vamos mostrar alguns dos principais recursos/comando do SSH. Secure Shell (SSH) é um protocolo de rede criptográfico para operação de serviços de rede de forma segura sobre uma rede insegura. O melhor exemplo de aplicação conhecido é para login remoto de utilizadores a sistemas de computadores.

O SSH fornece um canal seguro sobre uma rede insegura em uma arquitetura cliente-servidor, conectando uma aplicação cliente SSH com um servidor SSH. Aplicações comuns incluem login em linha de comando remoto e execução remota de comandos, mas qualquer serviço de rede pode ser protegido com SSH. A especificação do protocolo distingue entre duas versões maiores, referidas como SSH-1 e SSH-2. (wikipedia)

Vamos agora a nossa dica de hoje.

O acesso manual do SSH pode ser acessado executando o seguinte comando em seu terminal Linux:

Precisando de uma hospedagem de site ou de um servidor dedicado personalizado, seja para ambiente de teste, desenvolvimento ou de produção? E com um suporte de especialistas, que ti, ajudam a resolver os problemas o mais rápido possível? A SoloWeb tem o prazer em ti, ajudar com isso. Entre em contato conosco e faça uma cotação agora mesmo, acesse: www.soloweb.com.br.
$ ssh

Para editar suas configurações SSH, como porta de acesso e tempo limite de conexão, você precisará acessar o arquivo de configuração /etc/ssh/ssh_config ou /etc/ssh/sshd_config.

$ sudo nano /etc/ssh/ssh_config
OU
$ sudo vim /etc/ssh/sshd_config

Para acessar uma máquina remota/servidor de uma máquina cliente via SSH, você precisará seguir a seguinte implementação de comando:

$ ssh usuario@servidorremoto enderecoip

Será solicitado uma senha associada ao usuário da máquina remota antes de obter acesso.

Além de obter acesso direto a uma máquina remota e editar o arquivo de configuração SSH de acordo com sua preferência, as seguintes opções do SSH são muito úteis na comunicação entre o cliente e a máquina remota.

Gerar SSH-Keygen.

É uma recomendação usar o algoritmo ed25519 ao gerar chaves SSH. Considere a implementação abaixo usando um endereço de e-mail aleatório:

$ ssh-keygen -t ed25519 -C " emailqualquer@gmail.com "

Por motivos de compatibilidade, você pode decidir gerar a chave via RSA, conforme demonstrado abaixo:

$ ssh-keygen -t rsa -b 4096 -C " user@soloweb.com.br "

O sinalizador -C associa cada chave pública a um comentário, facilitando a vinculação de um endereço de e-mail à sua chave pública legítima. Durante a geração da chave SSH, lembre-se sempre de associar cada chave privada a uma senha para fins de segurança.

Conectar o servidor usando chaves SSH.

Para se conectar a uma máquina remota por meio de uma chave privada específica, consulte a seguinte implementação de comando:

Para chaves privadas geradas pelo algoritmo ed25519 :

$ ssh -i $HOME/.ssh/id_ed25519 ubuntu@192.168.100.29

Para chaves privadas geradas por RSA :

$ ssh -i $HOME/.ssh/id_rsa ubuntu@192.168.100.29

Conectar o servidor usando chaves autorizadas.

Se você pretende usar suas chaves SSH (chaves públicas) com um sistema de servidor ou serviço como o Github, você precisará anexar uma cópia das chaves com o arquivo ~/.ssh/authorized_keys no sistema remoto/servidor conforme demonstrado abaixo.

$ cat ~/.ssh/id_rsa.pub | ssh ubuntu@192.168.100.29 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys" 

Alternativamente, o seguinte comando também funciona:

$ ssh-copy-id ubuntu@192.168.100.29

A partir daqui, podemos nos conectar à máquina remota sem ser solicitada uma senha:

$ ssh ubuntu@192.168.100.29

Comandos SCP para Upload/Download de Arquivos.

Ao querer realizar uploads de arquivos em máquinas remotas:

$ scp simple.txt ubuntu@192.168.100.29 :/home/ubuntu/Downloads

Ao querer executar o upload recursivo de pasta/diretório local para uma máquina remota:

$ scp -rp mypackage ubuntu@192.168.100.29 :/home/ubuntu/Downloads

Baixando/recuperando um arquivo de uma máquina remota:

$ scp ubuntu@192.168.100.29 :/home/ubuntu/Downloads/simple.txt /home/dnyce/Downloads

Baixando/recuperando uma pasta/diretório recursivamente de uma máquina remota:

$ scp -rp ubuntu@192.168.100.29 :/home/ubuntu/Downloads/mypackage /home/dnyce/Downloads

Usando portas SSH não padrão.

Se o servidor SSH estiver sendo executado em uma porta não padrão como 3333 , sua conexão deve ser implementada da seguinte maneira:

$ ssh -p 3333 ubuntu@192.168.100.29

Executando comandos em máquinas remotas.

Se quisermos executar um comando na máquina remota como uma atualização do sistema ou comando ping após uma conexão SSH bem-sucedida, implementaremos o seguinte comando:

$ ssh -t ubuntu@192.168.100.29 'sudo apt update'

Como estamos executando um comando com privilégios de sudo, será solicitada uma senha de usuário.

Iniciar aplicativo na máquina remota.

Para iniciar um aplicativo como o aplicativo galculator após uma conexão ssh bem-sucedida, implemente:

$ ssh -X -t ubuntu@192.168.100.29 'galculator'

Gerenciar chaves SSH com SSH-Agent.

Um agente ssh é um gerenciador de chaves SSH que usa chaves ssh geradas pelo armazenamento de memória do processo, possibilitando o acesso do usuário a máquinas/servidores remotos sem a necessidade de uma senha de chave para autenticação do servidor.

Simplesmente implemente o seguinte comando com um openSSH em execução:

$ ssh-add /caminho/para/privado/chave/arquivo 

Para chaves privadas geradas pelo algoritmo ed25519 :

$ ssh-add $HOME/.ssh/id_ed25519 

Para chaves privadas geradas por RSA:

$ ssh-add $HOME/.ssh/id_rsa 

Criando configuração SSH

A criação do arquivo ~/.ssh/config permite gerenciar hosts SSH facilmente. As entradas de amostra neste arquivo têm a seguinte aparência:

Host linuxshelltips*
	User dnyce
	UdentifyFile ~/.ssh/linuxshelltips.pem
Host linuxshelltips-tutorials
	Hostname 192.168.100.29
Host api.linuxshelltips.com
	User ravi
	IdentityFile ~/.ssh/ravi.key

Sair de sessões SSH mortas

Se a sessão SSH não responder, use as seguintes combinações de teclas do teclado.

$ [Enter], ~, .

Vários pares de chaves do Github.

Ao trabalhar com diferentes repositórios privados do Github, com diferentes pares de chaves SSH, e desejar cloná-los, considere a seguinte implementação no arquivo ~/.ssh/config .

Host github-linuxshelltips-tutorials.org
	Hostname github.com
	IdentityFile ~/.ssh/id_tutorials
Host github-linuxshelltips-nginx-series.org
	Hostname github.com
	IdentityFile ~/.ssh/id_nginx

Túneis SSH

Essa abordagem é recomendada ao acessar máquinas remotas invisíveis para o mundo externo, como o banco de dados do Amazon RDS:

$ ssh ubuntu@jumphost -N -f -L localport:targethost:targetport

Como podemos ver, o SSH nos permite uma infinidade de recursos e vale a pena estudá-lo a fundo. Esperamos ter ajudado com esta dica e siga nos para mais tutoriais.

Esperamos ter ajudado com mais esta dica, e siga nos, nas redes sociais para mais tutoriais, e se precisar de nossa ajuda estamos a disposição: www.soloweb.com.br.

E lembrando que a SOLOWEB além de oferecer Hospedagem de Sites, Servidores Dedicados, Servidores VPS com o menor custo do Brasil, também desenvolve soluções de software e realiza gerenciamento e monitoramento de servidores para sua empresa, faça uma cotação sem custo, acesse: www.soloweb.com.br