Uso básico de comando ssh e configuração no Linux
- 4888
- 958
- Spencer Emard
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.
É 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.
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 hostSSH 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 %1Execute 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.
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:
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.130Exibir 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.130Desativar 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.130Altere 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.
- « Habilite o modo de depuração em SSH para solucionar problemas de conectividade
- Exemplos de comando Linux RMDIR para iniciantes »