Como aproveitar ao máximo o OpenSsh

Como aproveitar ao máximo o OpenSsh

OpenSsh é uma ferramenta de conectividade de rede e login remoto que criptografa com segurança todo o tráfego, originalmente desenvolvido pelos desenvolvedores do OpenBSD para uso em seu sistema operacional. Considerando o foco principal dos desenvolvedores OpenBSD na segurança, não é surpresa que o OpenSSH se torne rapidamente a implementação padrão de login remoto para todos os sistemas operacionais Linux e Unix. OpenSsh usa um modelo de servidor cliente com o ssh comando fornecendo funcionalidade do cliente e sshd fornecendo funcionalidade do servidor.

Neste tutorial, você aprenderá:

  • Como instalar o OpenSsh
  • Como fazer login em uma concha remota
  • Como copiar arquivos entre máquinas com SCP
  • Como ativar a autenticação chave baseada e desativar o login baseado em senha
  • Como salvar as configurações de máquinas acessadas com frequência para conexões mais fáceis
  • Como montar um sistema de arquivo remoto sobre o protocal SSH
  • Como usar o encaminhamento/tunelamento da porta
  • Para acessar uma máquina atrás de Nat/Firewall
  • Para criar um proxy da web
Como aproveitar ao máximo o OpenSsh - Dicas e truques

Requisitos de software e convenções usadas

Requisitos de software e convenções de linha de comando Linux
Categoria Requisitos, convenções ou versão de software usada
Sistema Os sistemas baseados no Devador, baseados em Red Hat e arco são explicitamente cobertos, mas o conjunto de OpenSsh é independente da distribuição e todas as instruções devem funcionar para qualquer distribuição que use o sistema Systemd como é o sistema init.
Programas OpenSsh
Outro Privilégios de raiz para modificar arquivos de configuração
Convenções # - requer que os comandos Linux sejam executados com privilégios root diretamente como usuário root ou por uso de sudo comando
$ - Requer que os comandos do Linux sejam executados como um usuário não privilegiado regular

Instalando o OpenSSH

A maioria das distribuições fornecerá a opção de instalar o OpenSSH durante sua instalação inicial, mas ainda poderá ser instalada manualmente se essa opção não foi escolhida. Nos sistemas baseados em Debian e Red Hat, você terá que instalar o servidor e o cliente separadamente, enquanto em sistemas baseados em arco o cliente e o servidor são instalados como um único pacote (veja o exemplo abaixo). Observe que, se você estiver usando um firewall, não se esqueça de abrir a porta 22 para obter tráfego em qualquer máquina que você gostaria de usar como servidor.

Em sistemas baseados em Debian

$ sudo apt-get install OpenSsh-Server $ sudo apt-get install OpenSsh-client 


Em sistemas baseados em Red Hat (Nota: Na versão 22 do Fedora ou mais tarde, substitua Yum por DNF)

$ sudo yum install openSsh-server $ sudo yum install 

No sistema baseado em arco

$ sudo pacman -s openssh 

Depois de instalar o servidor SSH, algumas distribuições permitirão o serviço SSHD por padrão e outras não serão. Nas versões recentes das distribuições acima, digite o seguinte para garantir que o daemon SSH seja ativado e capaz de ser conectado pelos clientes.

$ sudo systemctl start sshd $ sudo systemctl atable sshd 

Isso começará o serviço agora e em cada inicialização subsequente.

Faça login em uma concha remota

O login em um shell remoto é o uso mais básico e comum do OpenSSH. O comando a seguir permitirá que você faça login de uma máquina em rede para outra, supondo que ambos tenham o SSH aberto instalado. Nota: Substitua “Nome de usuário” pelo nome de usuário do usuário que você deseja fazer login como. Se você estiver se conectando a outro computador na mesma rede que substitua o "host" pelo endereço IP ou nome do host dessa máquina. Se você estiver fazendo login em uma máquina pela Internet, substitua o "host" pelo endereço IP ou nome de domínio dessa máquina.

$ SSH Nome de usuário@host 

Por padrão, o SSHD exige que a senha do usuário se autentique, então digite a senha do usuário e agora você está conectado a essa máquina como esse usuário. Se o usuário for o usuário root ou tiver privilégios sudo, agora você pode administrar completamente a máquina remotamente. Observe que, se você estiver se conectando a um servidor que estiver usando uma porta que não seja o padrão 22 (por exemplo 10001), precisará especificar o número da porta inserindo “-P 10001” (o ““-p”Deve ser minúsculo, mais sobre isso mais tarde) entre SSH e o restante do comando.

Copiando arquivos entre máquinas

O comando SCP pode ser usado para copiar arquivos de ou de uma máquina e de outra. Para isso, você deve primeiro fornecer o caminho do arquivo que deseja copiar e depois o caminho onde deseja que o arquivo seja copiado.

Por exemplo, para copiar o arquivo lista de afazeres.TXT do cliente ~/Documentos pasta para a máquina remota ~/Downloads Pasta Digite o seguinte.

$ scp ~/documents/Todolist.txt username@host: ~/downloads/ 

Da mesma forma, você pode copiar um arquivo do servidor para o cliente. Basta fornecer o caminho do arquivo no servidor, seguido pelo caminho desejado na máquina cliente. Por exemplo, podemos copiar o mesmo lista de afazeres.TXT que acabamos de enviar, para o /tmp Diretório da máquina local emitindo o seguinte comando.

$ scp nome de usuário@host: ~/downloads/Todolist.txt /tmp / 

Observe que, se você estiver copiando de/para um servidor que estiver usando uma porta que não seja o padrão 22 (por exemplo 10001), precisará especificar o número da porta inserindo “ -P 10001 “entre o SCP e o restante do comando. Além disso, observe que este é um capital P em contraste com a minúscula p usado pelo comando ssh. O processo para copiar diretórios é o mesmo, exceto que você deve especificar o “-r”Flag para copiar recursivamente um diretório junto com todos os seus subdiretos e arquivos nele. O comando a seguir copiará o diretório de documentos inteiros do usuário local para a pasta de downloads do usuário remoto.

$ scp -r ~/documenta nome de usuário@host: ~/downloads/ 

Como alternativa ao comando scp, você pode usar o comando sftp para transferir arquivos entre máquinas. Ele se comporta como o comando clássico FTP, mas diferentemente do FTP, é totalmente criptografado.

Configurando a autenticação baseada em chave

Se você estiver usando o OpenSSH em sua rede doméstica segura, poderá estar bem com a autenticação de senha. No entanto, se você o estiver usando pela Internet, é recomendado que a autenticação baseada em chaves e desative a autenticação de senha no seu servidor internet voltada para a Internet para segurança adicional. Isso também pode ser útil se você simplesmente deseja evitar que a senha faça o login ou se você usar a máquina do servidor no wi -fi público.

A autenticação baseada em chave usa um par de teclas criptográfico constante de uma chave privada que é armazenada apenas na máquina cliente local e uma chave pública que é armazenada no servidor remoto.

Primeiro, gerar o par de teclas privado/público na máquina cliente local.

$ ssh -keygen -t rsa 

Em seguida, envie apenas a chave pública para a máquina remota

$ SSH-COPY-ID -I ~//.ssh/id_rsa.Nome de usuário do pub@host 

Agora faça login no servidor remoto e se você não for solicitado para a senha do usuário, o login baseado em chaves está funcionando e você pode desativar o login baseado em senha.
Usando seu editor de texto favorito aberto /etc/ssh/sshd_config Como raiz ou com sudo

$ sudo vim/etc/ssh/sshd_config 


e fazer as seguintes mudanças mudando sim para não para esses campos e descommentando -os conforme necessário (exclua # se a linha começar com ela).

ChallengerSesponseauthentication No PasswordAuthentication No usepam não 

Em seguida, recarregue o serviço SSHD.

$ sudo systemctl Reload SSH 

Salvar configurações de máquinas acessadas com frequência para conexões mais fáceis

Pode ser útil salvar as configurações de máquinas acessadas com frequência, para que você possa se conectar a elas com mais facilidade; Especialmente se eles tiverem sshd ouvindo em uma porta não padrão (não 22). Para fazer isso, você adiciona entradas ao seu ~/.ssh/config arquivo.
Uma entrada para uma máquina que você se conectaria ao uso do seguinte comando

$ ssh -p 1666 bob@remotemachine 

se parece com isso.

Host Remotemachine User Bob HostName Remotemachine Port 1666 

Então você pode acessar essa máquina usando o seguinte comando daqui para frente.

$ ssh remotemachine 

Montagem de um sistema de arquivos de rede com SSHFS

Embora não faça parte da suíte OpenSsh, sshfs pode ser instalado usando o gerenciador de pacotes e depois usado para montar sistemas de arquivo remotos pela rede. Vamos supor que você deseja acessar o diretório inicial do usuário1@máquina1 no seu sistema de arquivo local.

Crie o diretório onde deseja montar o sistema de arquivo remoto.

$ mkdir sshmount 

Monte o sistema de arquivos especificando o caminho remoto e o caminho local onde você gostaria de montá-lo.

$ sshfs user1@máquina1:/home/user1 sshmount 

Para desmontar o problema do sistema de arquivos qualquer um dos seguintes comandos

$ fusermount -u sshmount 

ou

$ sudo umount sshmount 


Encaminhamento/tunelamento de portas

O encaminhamento de portas, também conhecido como tunelamento, pode ser usado para fornecer criptografia para aplicações e protocolos cujo tráfego de rede seria enviado no Clear. Os dois exemplos seguintes mostram outros dois usos do encaminhamento de porta.

Acessando uma concha remota em uma máquina que está atrás de Nat ou Firewall

E se você quiser SSH pela Internet em uma máquina que está atrás de Nat ou em um firewall? Neste cenário, existem 3 máquinas.

  1. A máquina por trás do NAT que você deseja fazer login remotamente
  2. Um servidor de internet voltado para o qual você tem acesso ssh
  3. Uma máquina em outra rede que você deseja usar para fazer login para a máquina 1 pela Internet

Para o comando ssh o -eu alternar as conexões para a frente para a porta local especificada para a porta host especificada. Da mesma forma, o -R alternar as conexões para a frente para a porta remota especificada para a porta local especificada.

Na máquina 1, insira o seguinte comando.

User1@1 $ SSH -R 10125: localhost: 22 User2@2 

Na máquina 3, insira os seguintes comandos. Nota: O segundo comando deve ser aberto em uma nova janela ou tty do terminal.

user3@3 $ ssh -l 10001: localhost: 10125 user2@2 user3@3 $ ssh user1@localhost -p 10001 

O primeiro comando parecerá conectado à máquina 2 normalmente, mas também vinculará a porta 22 (serviço sshd) da máquina 1 à porta 10125 na máquina 2, para que as conexões com a porta 10125 na máquina 2 sejam encaminhadas para a porta 22 na máquina 1. O segundo comando também parecerá conectado à máquina 2 normalmente, mas vincula a porta 10001 da máquina 3 à porta 10125 na máquina 2, de modo que as conexões com a porta 10001 na máquina 3 são encaminhadas para a porta 10125 na máquina 2, que é encaminhada para a porta 22 na máquina 1. Então, finalmente, a Machine 3 conseguiu fazer login na máquina 1, conectando -se à porta 10001 em si mesma, que encaminhou através do túnel que criamos.

Usando o OpenSsh como proxy da web

Usando o -D Sinalizador você pode usar seu servidor SSH remoto como proxy de meias. Isso pode ser particularmente útil para a navegação na web, por exemplo, se você estiver no Wi -Fi público e deseja alguma privacidade extra, ou se estiver em uma rede/escola/outra rede que possa bisbilhotar o tráfego ou o conteúdo do censor.

Basta emitir o seguinte comando e você poderá usar a porta 8888 Sua máquina local como proxy de meias, para que as conexões com a porta 8888 sejam encaminhadas com segurança ao servidor remoto e totalmente criptografadas de olhos indiscretos na rede local.

ssh -d 8888 nome de usuário@host 
Configurando proxy de meias no Firefox

Tutoriais do Linux relacionados:

  • Como impedir a verificação de conectividade do NetworkManager
  • Linux: Configurar SSH
  • Coisas para instalar no Ubuntu 20.04
  • Uma introdução à automação, ferramentas e técnicas do Linux
  • Como configurar um servidor OpenVPN no Ubuntu 20.04
  • Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
  • Como gerar e gerenciar chaves SSH no Linux
  • Mint 20: Melhor que o Ubuntu e o Microsoft Windows?
  • Ubuntu 20.04 servidor ssh
  • Mastering Bash Script Loops