OpenSSH Server

Introduction

OpenSSH is a powerful collection of tools for the remote control of, and transfer of data between, networked computers. Você também irá aprender sobre algumas das configurações possíveis com a aplicação do servidor OpenSSH e como alterá-las no seu sistema Ubuntu.

OpenSSH é uma versão livremente disponível da família de protocolos Secure Shell (SSH) de ferramentas para controle remoto, ou transferência de arquivos entre computadores. Ferramentas tradicionais usadas para realizar essas funções, como telnet ou rcp, são inseguras e transmitem a senha do usuário em cleartext quando usado. O OpenSSH fornece um servidor e ferramentas de cliente para facilitar operações de controle remoto e transferência de arquivos seguras e criptografadas, substituindo efetivamente as ferramentas legadas.

o componente do servidor OpenSSH, o sshd, ouve continuamente as conexões do cliente a partir de qualquer uma das ferramentas do cliente. Quando uma solicitação de conexão ocorre, o sshd configura a conexão correta, dependendo do tipo de conexão da ferramenta cliente. Por exemplo, se o computador remoto estiver se conectando com a aplicação cliente ssh, o servidor OpenSSH configura uma sessão de controle remoto após autenticação. Se um usuário remoto se conecta a um servidor de OpenSSH com scp, o servidor de OpenSSH inicia uma cópia segura de arquivos entre o servidor e o cliente após a autenticação. OpenSSH pode usar muitos métodos de autenticação, incluindo senha simples, chave pública e bilhetes Kerberos.

instalação

instalação do cliente e servidor OpenSSH é simples. Para instalar o OpenSSH cliente de aplicações no seu sistema Ubuntu, use este comando em um prompt de terminal:

sudo apt install openssh-client

Para instalar o OpenSSH server aplicativo e os arquivos de suporte relacionados, use este comando em um prompt de terminal:

sudo apt install openssh-server

Configuração

Você pode configurar o comportamento padrão do servidor OpenSSH aplicação, sshd, editando o arquivo /etc/ssh/sshd_config. Para obter informações sobre as diretivas de configuração usados neste arquivo, você pode visualizar o manual apropriado página com o seguinte comando, emitido em um prompt de terminal:

man sshd_config

Existem muitas diretivas no arquivo de configuração do sshd controlar coisas como configurações de comunicação e modos de autenticação. A seguir estão exemplos de diretivas de configuração que podem ser alteradas editando o arquivo /etc/ssh/sshd_config.

Tip

Antes de editar o ficheiro de configuração, deve fazer uma cópia do ficheiro original e protegê-lo da escrita, para que tenha a configuração original como referência e reutilize conforme necessário.

Copiar /etc/ssh/sshd_config arquivo e protegê-lo de escrita com os seguintes comandos, emitido em um prompt de terminal:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.originalsudo chmod a-w /etc/ssh/sshd_config.original

Além disso, desde a perda de um servidor ssh pode significar perder o seu caminho para chegar a um servidor, verifique a configuração depois de alterá-lo e antes de reiniciar o servidor:

sudo sshd -t -f /etc/ssh/sshd_config

A seguir, são exemplos de diretivas de configuração que você pode alterar:

  • Para definir o OpenSSH para escutar na porta TCP 2222, em vez de a porta TCP padrão 22, alterar a diretiva de Porta-se como tal:

Porta 2222

  • Para fazer o seu servidor OpenSSH exibir o conteúdo de /etc/issue.net arquivo como um arquivo de pré-início de sessão de banner, basta adicionar ou modificar esta linha /etc/ssh/sshd_config ficheiro:

Banner /etc/issue.net

Depois de fazer as alterações para o /etc/ssh/sshd_config arquivo, salve o arquivo e reinicie o servidor sshd aplicação para efectuar as alterações usando o seguinte comando em um prompt de terminal:

sudo systemctl restart sshd.service

Aviso

Muitas outras diretivas de configuração para o sshd está disponível para alterar a aplicação de servidor do comportamento para atender às suas necessidades. Seja avisado, no entanto, se o seu único método de acesso a um servidor for o SSH, e você cometer um erro ao configurar o sshd através do/etc/ssh/sshd_config, você poderá descobrir que está bloqueado fora do servidor ao reiniciá-lo. Além disso, se for fornecida uma diretiva de configuração incorreta, o servidor sshd pode recusar-se a iniciar, por isso tenha cuidado extra ao editar este arquivo em um servidor remoto.

teclas SSH

SSH permitem a autenticação entre duas máquinas sem a necessidade de uma senha. A autenticação de chaves SSH usa uma chave privada e uma chave pública.

para gerar as chaves, a partir de uma linha de comandos de terminal digite:

ssh-keygen -t rsa

isto irá gerar as chaves usando o algoritmo RSA. No momento desta escrita, as chaves geradas terão 3072 bits. Você pode modificar o número de bits usando a opção -b. Por exemplo, para gerar chaves com 4096 bits, você pode fazer:

ssh-keygen -t rsa -b 4096

durante o processo, ser-lhe-á pedida uma senha. Basta carregar em Enter quando for solicitado a criar a chave.

Por padrão, a chave pública é salvo no arquivo ~/.ssh/id_rsa.pub enquanto ~/.ssh/id_rsa é a chave privada. Agora copie o id_rsa.pub arquivo para o host remoto e acrescentar à ~/.ssh/authorized_keys digitando:

ssh-copy-id username@remotehost

por fim, verifique as permissões no authorized_keys arquivo, somente o usuário autenticado deve ter permissões de leitura e gravação. Se as permissões não estiverem correctas, alterá-las por:

chmod 600 .ssh/authorized_keys

você deve agora ser capaz de SSH para a máquina sem ser solicitado por uma senha.

importar chaves de servidores públicos

nestes dias, muitos utilizadores já têm chaves ssh registadas com serviços como o launchpad ou o github. Esses podem ser facilmente importados com:

ssh-import-id <username-on-remote-service>

O prefixo lp: é expressa e significa a obtenção do launchpad, a alternativa gh: vai fazer a ferramenta de busca a partir do github em vez disso.

dois factores de autenticação com U2F/FIDO

OpenSSH 8.2 suporte adicional para dispositivos de autenticação de hardware U2F/FIDO. Estes dispositivos são usados para fornecer uma camada extra de segurança em cima da autenticação baseada em chaves existente, como o token de hardware precisa estar presente para terminar a autenticação.

é muito simples de usar e configurar. O único passo extra é gerar um novo teclado que pode ser usado com o dispositivo de hardware. Para isso, existem dois tipos-chave que podem ser usados: ecdsa-ske ed25519-sk. O primeiro tem suporte de hardware mais amplo, enquanto o segundo pode precisar de um dispositivo mais recente.

Uma vez que o teclado é gerado, ele pode ser usado como você normalmente usaria qualquer outro tipo de chave no openssh. O único requisito é que para usar a chave privada, o dispositivo U2F tem que estar presente na máquina.

Por exemplo, ligar o U2F dispositivo e gerar um par de chaves para usar com ele:

$ ssh-keygen -t ecdsa-skGenerating public/private ecdsa-sk key pair.You may need to touch your authenticator to authorize key generation. <-- touch deviceEnter file in which to save the key (/home/ubuntu/.ssh/id_ecdsa_sk): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/ubuntu/.ssh/id_ecdsa_skYour public key has been saved in /home/ubuntu/.ssh/id_ecdsa_sk.pubThe key fingerprint is:SHA256:V9PQ1MqaU8FODXdHqDiH9Mxb8XK3o5aVYDQLVl9IFRo ubuntu@focal

Agora basta transferir a parte pública para o servidor ~/.ssh/authorized_keys e você está pronto para ir:

$ ssh -i .ssh/id_ecdsa_sk [email protected] user presence for key ECDSA-SK SHA256:V9PQ1MqaU8FODXdHqDiH9Mxb8XK3o5aVYDQLVl9IFRo <-- touch deviceWelcome to Ubuntu Focal Fossa (GNU/Linux 5.4.0-21-generic x86_64)(...)[email protected]:~$

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *