Servidor OpenSSH

Introdução

Esta secção do guia do Ubuntu Server introduz uma colecção poderosa de ferramentas para controlo remoto e transferência de dados em computadores em rede

OpenSSH é uma versão livre do protocolo Secure Shell (SSH) e da família de ferramentas para controlar remotamente um computador ou transferir ficheiros entre computadores. Ferramentas tradicionais para executar essas funções, tais como telnet ou rcp, são inseguras e transmitem as palavras passe dos utilizadores em texto simples quando utilizadas. O OpenSSH fornece um serviço para o servidor e ferramentas cliente para facilitar um controlo remoto seguro, codificado e operações de transferência de ficheiros, substituindo efectivamente as ferramentas padrão.

O componente sshd do servidor OpenSSH, aguarda continuamente ligações de qualquer das ferramentas dos clientes. Quando um pedido de ligação ocorre, o sshd configura a ligação correcta dependendo do tipo de ferramenta do cliente que se está a ligar. Por exemplo, se o computador remoto se está a ligar com a aplicação cliente ssh, o processo do servidor OpenSSH inicia uma ligação de controlo remoto após a autenticação. Se o utilizador remoto usa uma aplicação scp o processo do servidor OpenSSH inicia uma cópia segura dos ficheiros entre o servidor e o cliente após a autenticação. O OpenSSH pode utilizar vários métodos de autenticação, incluindo palavras passe simples, chaves públicas e senhas Kerberos.

Instalação

A instalação das aplicações cliente e servidor do OpenSSH é simples. Para instalar a aplicação cliente OpenSSH no seu sistema Ubuntu, utilize este comando num terminal:

sudo apt-get install openssh-client

Para instalar a aplicação servidor OpenSSH, e ficheiros de suporte associados, utilize este comando num terminal:

sudo apt-get install openssh-server

Configuração

Pode alterar o comportamento predefinido da aplicação servidor OpenSSH, sshd, editando o ficheiro /etc/ssh/sshd_config. Para informações sobre as directivas de configuração usadas neste ficheiro, pode consultar a página de manual apropriada com o seguinte comando, executado num terminal:

man sshd_config

Existem muitas directivas no ficheiro de configuração do sshd controlando coisas como as configurações das comunicações e os modos de autenticação. De seguida apresentam-se exemplos de directivas de configuração que podem ser alteradas ao editar o ficheiro /etc/ssh/ssh_config.

[Dica]

Antes de editar o ficheiro de configuração, deverá fazer uma cópia do original e protegê-lo contra escrita por forma a ter sempre as configurações originais como referência ou para o reutilizar se necessário.

Copie o ficheiro /etc/ssh/sshd_config e proteja-o contra escrita com os seguintes comandos, executados num terminal:

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

A seguir apresentam-se exemplos de directivas que pode alterar:

  • Para ajustar o OpenSSH para aceitar pedidos (escutar) o protocolo TCP na porta 2222, em vez da porta por omissão TPC porta 22, altere a directiva Port como se segue:

    Port 2222

  • Para fazer com que o sshd permita credenciais de login baseadas em chaves públicas, adicione simplesmente a linha seguinte:

    PubkeyAuthentication yes

    no ficheiro /etc/ssh/sshd_config, ou se a linha já estiver presente assegure-se de que não está comentada.

  • Para fazer com que o seu servidor OpenSSH mostre o conteúdo do ficheiro /etc/issue.net como uma mensagem de pré-login, adicione simplesmente ou modifique a seguinte linha:

    Banner /etc/issue.net

    no ficheiro /etc/ssh/sshd_config.

Após a marcação de alterações no ficheiro /etc/ssh/sshd_config, grave o ficheiro e reinicie a aplicação servidor sshd para tornar efectivas as alterações utilizando o comando seguinte num terminal:

sudo /etc/init.d/ssh restart

[Atenção]

Muitas outras directivas de configuração para o sshd estão disponíveis para alterar o comportamento do servidor de forma a satisfazer as suas necessidades pessoais. Tenha em atenção que, se o seu único método de acesso ao servidor for via ssh, e se ocorrer um erro na configuração do sshd ao alterar o ficheiro /etc/ssh/sshd_config, poderá ficar bloqueado do lado de fora após reiniciar o servidor, ou que a aplicação de servidor sshd se recuse a iniciar em virtude de uma directiva de configuração incorrecta. Assim, tenha especial atenção quando edita este ficheiro remotamente.

Referências

Sítio web do OpenSSH

Página wiki do OpenSSH avançado