Uso básico de comando ssh e configuração no Linux

Uso básico de comando ssh e configuração no Linux

Resumo: Neste guia, discutiremos os casos de uso comum de SSH. Também discutiremos configurações SSH comumente usadas que podem ser usadas no dia-a-dia para aumentar sua produtividade.

Capsula segura (Ssh) é um protocolo de rede amplamente adotado, que nos permite interagir com hosts remotos de uma maneira segura. Ele fornece segurança criptografando toda a comunicação entre eles.

Como usar o comando ssh no linux

Nesta seção, discutiremos alguns dos casos de uso popular do Ssh protocolo.

Conecte -se ao host Linux remoto

Existem várias maneiras de interagir com hosts Linux remotos usando protocolos como Telnet, ftp, netcat, etc. No entanto, estes não são seguros devido à ausência de criptografia. Podemos usar o protocolo SSH para permitir uma comunicação segura entre os hosts.

Temos que usar um Ssh cliente para interagir com o host remoto. Existem muitos clientes baseados em GUI e CLI disponíveis para Linux. No entanto, ao longo deste guia, usaremos um utilitário de linha de comando chamado ssh. Por padrão, o ssh O utilitário está disponível na maioria das distribuições Linux.

A sintaxe do comando ssh é a seguinte:

$ ssh [options] [comandos] [args] 

Aqui, os colchetes ([]) representar os argumentos opcionais, enquanto suportes angulares () representar os argumentos obrigatórios.

Vamos nos conectar ao host remoto usando o ssh cliente:

$ ssh -l root 192.168.19.130 

Neste exemplo, especificamos o nome de login usando o -eu opção e o destino é 192.168.19.130. A conexão SSH é estabelecida após inserir a senha correta. Agora em diante, podemos executar os comandos no host remoto, assim como o sistema local.

# nome de anfitrião 

Para encerrar a sessão, podemos usar o saída comando ou Ctrl+d Combinação de chaves.

SSH Connect ao host Linux remoto

É importante observar que precisamos autenticar com o host remoto para cada nova sessão. Para evitar inserir senhas a cada vez, podemos configurar um login sem senha ssh.

Executar comandos no host remoto

Na seção anterior, vimos como estabelecer uma conexão com um host remoto, que é adequado apenas quando vamos usar o host remoto por uma duração mais longa. Às vezes, só precisamos executar um ou dois comandos no host remoto. Nesses casos, podemos executar esses comandos sem criar uma sessão de longo prazo.

Vamos executar o comando hostname no host remoto:

$ ssh -l root 192.168.19.130 nome do host 

De maneira semelhante, podemos executar vários comandos em uma máquina Linux remota:

$ ssh -l root 192.168.19.130 'HostName; pwd ' 
Comandos de execução ssh em linux remoto

É importante observar que os comandos devem ser fechados dentro das citações e separados pelo Semi-Colon (;) personagem. Se você deseja executar comandos em vários hosts Remote Linux, leia nosso artigo - PSSH - Execute comandos em vários hosts Remote Linux.

Execute o script no host remoto

Semelhante aos comandos, também podemos executar um script local no host remoto. Vamos entender isso com um exemplo.

Primeiro, crie um script de shell simples em uma máquina local com permissões executáveis:

$ CAT Script.SH HostName PWD 

Agora, vamos executá -lo no host remoto:

$ ssh [email protegido] 'Bash -s' < ./script.sh 

Neste exemplo, usamos o -s opção da festa para ler o script da entrada padrão.

Script de execução ssh em linux remoto

Copie arquivos entre os hosts

Trabalhamos com os arquivos e diretórios com muita frequência. Uma operação comum que os usuários executam é copiar diretórios e arquivos. Assim como as máquinas locais, podemos copiar arquivos e diretórios entre os hosts remotos usando o comando scp, que copia os arquivos com segurança usando o protocolo SSH.

Vamos copiar o roteiro.sh arquivo para o /tmp Diretório do host remoto:

script $ scp.sh [email protegido]:/tmp 

Agora, verifique se o arquivo foi copiado:

$ ssh [email protegido] 'ls /tmp /script.sh ' 
Arquivos de cópia ssh para Linux remoto

De maneira semelhante, podemos usar o comando scp para copiar os diretórios. No entanto, temos que usar o -r opção com o comando.

Ativar compactação para SSH

Ssh suporta compressão de dados usando o gzip Algoritmo de compressão, que comprime todos os possíveis fluxos de dados, como stdin, stdout, stderr e assim por diante. Esta opção é muito útil ao usar conexões de rede lenta.

Podemos ativar a compactação em ssh usando o -C opção:

$ ssh -c -l root 192.168.19.130 'nome do host' 
SSH Ativar compressão

Ativar modo detalhado para ssh

Os usuários do Linux geralmente precisam depurar sessões SSH para investigar várias conexões SSH e problemas relacionados à configuração. Nesses casos, podemos ativar o modo detalhado que imprime os registros de depuração da sessão atual.

Vamos ativar o modo detalhado usando o -v opção:

$ ssh -v -l root 192.168.19.130 nome do host 

Além disso, podemos aumentar o nível de verbosidade usando o múltiplo -v opções.

  • -v - Define o nível de verbosidade para 1 e fornece detalhes sobre as atividades do lado do cliente.
  • -vv - Define o nível de verbosidade para 2 e fornece detalhes sobre as atividades do cliente e do servidor.
  • -vvv - Define o nível de verbosidade para 3 e fornece informações mais detalhadas sobre as atividades do cliente e do servidor.

O nível máximo de verbosidade suportado por ssh é 3. Vamos ver isso em ação:

$ ssh -vvv -l root 192.168.19.130 nome do host 
SSH Enbale Modo Verbose

No exemplo acima, Debug1 representa a mensagem de depuração habilitada pela verbosidade Nível 1. De forma similar, Debug2 e Debug3 Representar as mensagens de depuração habilitadas pelos níveis de verbosidade 2 e 3, respectivamente.

Sequências de fuga em ssh

Podemos usar sequências de fuga com o Ssh para gerenciar as sessões do terminal do cliente. Vamos discutir sequências de fuga comumente usadas com os casos de uso apropriados.

Suspendendo sessão ssh

Às vezes, temos que realizar algumas atividades na máquina local sem encerrar a sessão SSH atual. Nesse cenário, podemos suspender a sessão atual usando o ~ + ctrl + z Sequência -chave.

Primeiro, faça login no host remoto e execute o nome de anfitrião comando:

$ ssh -l root 192.168.19.130 # HostName 

Em seguida, para suspender o primeiro tipo de sessão atual tilde (~) personagem e depois pressione o Ctrl + z chaves. É importante notar que o tilde (~) O personagem não será exibido no stdout até pressionarmos Ctrl + z.

Agora, vamos verificar se a sessão foi suspensa:

$ jobs 

Aqui, podemos ver que a atual sessão do SSH está em execução em segundo plano.

Vamos retomar a sessão novamente usando o FG comando e execute o nome de anfitrião comando:

$ fg %1 
Execute a sessão SSH em segundo plano
Terminar sessão SSH congelada

Tenho certeza que você deve ter visto as sessões SSH congeladas, que acontecem quando a sessão é interrompida por uma rede instável. Aqui, não podemos abortar a sessão usando o saída comando. No entanto, podemos encerrá -lo usando o "~ + ." Sequência -chave.

Primeiro, faça login no host remoto:

$ ssh -l root 192.168.19.130 

Agora use o "~ + ." Combinação de chave para encerrar a sessão atual.

Encerrar a sessão SSH

Neste exemplo, podemos ver que Ssh mostra a mensagem - Conexão com 192.168.19.130 fechado.

Lista de sequência de fuga suportada

Uma coisa interessante é que há uma sequência de fuga para listar todas as sequências de fuga suportadas. Podemos usar o “~ + ?” Sequência de fuga para listar as sequências de fuga suportadas:

Sequências de fuga suportadas

Aqui, temos que pressionar a tecla Enter para sair do menu de ajuda.

Como configurar SSH no Linux

Nesta seção, discutiremos a configuração do lado do servidor para endurecer o servidor SSH. O SSH Server armazena toda a sua configuração em /etc/ssh/sshd_config arquivo. É importante observar que o acesso ao usuário raiz é necessário para atualizar a configuração SSH.

Exibir banner SSH

Como prática recomendada, devemos sempre exibir o banner antes de estabelecer uma conexão SSH. Em alguns casos, desencoraja usuários não autorizados de acessar hosts remotos. Vamos ver como ativar esse cenário passo a passo.

Primeiro, crie um arquivo de texto em um servidor remoto com uma mensagem de aviso:

# vi /etc /banner.TXT 

Em seguida, adicione a seguinte mensagem de banner:

**************************************************** ******************* Aviso !!! Você está tentando fazer login no Techmint.servidor de com. Todas as atividades neste servidor são monitoradas. Encerrar a sessão imediatamente se você não for um usuário autorizado. **************************************************** ******************* 

Em seguida, abra o /etc/ssh/sshd_config Arquive e especifique o arquivo com o Bandeira Diretiva:

Banner /etc /banner.TXT 

Agora, reinicie o sshd serviço e encerrar a sessão usando o saída comando:

# SystemCtl Reiniciar o SSHD # saída 

Por fim, verifique o banner fazendo login no host remoto:

$ ssh -l root 192.168.19.130 
Exibir banner SSH

Aqui, podemos que o servidor exiba o banner SSH corretamente.

Desativar o login de raiz SSH

Até agora, usamos o usuário root para acessar o host remoto. No entanto, isso é contra o princípio de menos privilégio. Em um ambiente de produção, o acesso ao usuário raiz é sempre restrito a melhorar a segurança.

Podemos usar o Permitrootlogina Diretiva para desativar o login do usuário root.

Primeiro, abra o /etc/ssh/sshd_config Arquive e use a opção não com o Permitrootlogina Diretiva:

Permitrootlogina no 

Agora, reinicie o sshd serviço e encerrar a sessão usando o saída comando:

# SystemCtl Reiniciar o SSHD # saída 

Por fim, verifique isso criando uma nova sessão SSH:

$ ssh -l root 192.168.19.130 
Desativar o login de raiz SSH

Aqui, podemos observar que não podemos fazer login no host remoto com o usuário root. Para permitir o login do usuário root, podemos usar a opção sim com a mesma diretiva.

Alterar porta SSH padrão

Por padrão, Ssh Usa a porta TCP 22. No entanto, podemos configurar o SSH para executar em uma porta diferente i.e. 8088.

Primeiro, abra o /etc/ssh/sshd_config Arquive e use o 8088 valor com o Porta Diretiva:

Porta 8088 

Em seguida, reinicie o serviço SSHD e encerre a sessão:

# SystemCtl Reiniciar o SSHD # saída 

Agora, vamos fazer login no host remoto:

$ ssh -p 8088 -l Raiz 192.168.19.130 
Altere a porta SSH

Neste exemplo, usamos o -p opção para especificar o número da porta.

Em alguns casos, temos que executar algumas outras etapas para permitir a comunicação em uma porta que não. Como identificar portas disponíveis, atualizar regras de firewall, configurações de SELinux, etc.

Neste artigo, discutimos o protocolo SSH e seus casos de uso comum. Em seguida, discutimos algumas opções comuns. Por fim, discutimos algumas das configurações para proteger o servidor SSH.

Você conhece qualquer outro melhor uso de comando ssh no Linux? Deixe -nos saber suas opiniões nos comentários abaixo.