Servidor OpenSSH

Introdução

Esta sessão do Guia de Servidor Ubuntu introduz uma poderosa coleção de ferramentas para controle remoto de computadores em rede e tranferência de dados através de computadores em rede, chamada OpenSSH. Você também aprenderá sobre algumas possíveis configurações da aplicação de servidor OpenSSH e como modificálas no seu sistema Ubuntu.

OpenSSH é uma versão disponível livremente da família de ferramentas do protocolo Secure Shell (SSH) para controlar um computador remotamente ou transferir arquivos entre computadores. Ferramentas tradicionais utilizadas para cumprir essas funções, como telnet ou rcp são inseguras e transmitem a senha de um usuário em texto puro quando utilizadas. O OpenSSH provê um servidor daemon e ferramentas de cliente para facilitar controle remoto e operações de transmissão de arquivo com segurança e criptografia, efetivamente substituindo ferramentas de legado.

O componente de servidor OpenSSH, sshd, observa constantemente conexões de clientes para qualquer das ferramentas do cliente. Quando uma requisição de conexão ocorre, sshd inicia a conexão correta dependendo do tipo de ferramenta de conexão do cliente. Por exemplo, se um computador remoto conecta-se por um cliente ssh, o servidor OpenSSH iniciará o controle remoto da sessão após autenticar. OpenSSH utiliza vários métodos de autenticação, incluindo senha simples, chave pública e tiquetes Kerberos.

Instalação

A instalação do servidor e cliente OpenSSH é simples, Para instalar o OpenSSH cliente no seu Ubuntu, use este comando no terminal:

sudo apt-get install openssh-client

Para instalar o OpenSSH servidor no seu Ubuntu, use este comando no terminal:

sudo apt-get install openssh-server

O pacote openssh-server pode também ser selecionado para instalação durante o processo de instalação do Server Edition

Configuração

Você pode configurar o comportamento padrão do servidor OpenSSH, sshd, editando o arquivo /etc/ssh/sshd_config. Para mais informação sobre as diretrizes de configuração usadas neste arquivo, você pode ver o manual apropriado com o seguinte comando, executado pela linha de comando:

man sshd_config

Há muitas diretivas no arquivo de configuração do sshd, controlando coisas como preferências de comunicação e modos de autenticação. Os seguintes são exemplo de diretivas que podem ser modificadas editando-se o arquivo /etc/ssh/sshd_config.

[Dica]

Antes de editar o arquivo de configuração, você deve fazer uma cópia do arquivo original e protegê-lo de escrita, para que você assim tenha os ajustes originais como uma referência e para re-usar como necessário.

Copie o arquivo /etc/ssh/sshd_config e proteja-o contra sobrescrição com com seguinte comando, executado na linha de comando:

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

Os seguintes são exemplos de diretrizes de configuração que você pode modificar:

  • Para ajustar seu OpenSSH para escutar na porta de TCP 2222 invés da porta de TCP padrão 22, modifique a diretriz Port da seguinte forma:

    Porta 2222

  • Para fazer o sshd aceitar acesso público à base de chaves credenciais, simplesmente adicione ou modifique a linha:

    PubkeyAuthentication yes

    No arquivo /etc/ssh/sshd_config, ou se já estiver presente, assegure-se que a linha não está sem comentário.

  • Para fazer o seu servidor OpenSSH exibir o conteúdo do arquivo /etc/issue.net como um aviso antes de conectar, simplesmente adicione ou modifique a linha:

    Banner /etc/issue.net

    No arquivo /etc/ssh/sshd_config.

Após realizar as alterações no arquivo /etc/ssh/sshd_config, salve o arquivo e reinicie o servidor de aplicações sshd para que as alterações tenham efeito. Para isto utilize o seguinte comando em um terminal:

sudo /etc/init.d/ssh restart
[Atenção]

Várias configurações adicionais de diretrizes do sshd estão disponíveis para alterar o comportamento do servidor de acordo com suas necessidades. Esteja ciente, no entanto, que se seu único método de acesso a um servidor é ssh e você comete um erro ao configurar o sshd via arquivo de configuração /etc/ssh/sshd_config, você pode torna-lo indisponível após reiniciar o servidor, ou esse servidor sshd pode recusar iniciar, devido a uma diretriz incorreta na configuração, então seja extremamente cuidadoso quando editar este arquivo num servidor remoto.

Chaves SSH

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

Para gerar as chave, digite a partir de um terminal:

ssh-keygen -t dsa

Isto irá gerar as chaves usando uma identidade de autenticação DSA do usuário. Durante o processo será solicitado uma senha. Simplesmente digite Enter quando for solicitado para criação da chave.

Por padrão, a chave pública é salva no arquivo ~/.ssh/id_dsa.pub, enquanto que ~/.ssh/id_dsa é a chave privada. Agora copie o arquivo id_dsa.pub para o servidor remoto e acrescente-o ao arquivo ~/.ssh/authorized_keys digitando:

ssh-copy-id username@remotehost

Finalmente, cheque novamente as permissões no arquivo authorized_keys, apenas os usuários autenticados devem ter permissões de escrita e leitura. Se as permissões não estão corretas, modifique-as através de:

chmod 644 .ssh/authorized_keys

Você deve está habilitado a usar SSH para a máquina sem ser solicitado uma senha.