SSH

Publicado: 17/06/2011 em CMS, Linux, Serviços IP
Tags:, ,

O SSH é, na verdade, um protocolo aberto e não o nome de uma solução específica. Existem diversas versões do SSH. A maioria das distribuições Linux inclui o OpenSSH. Eles são usados por muita gente para administrar servidores Linux remotamente.

O SSH é dividido em dois módulos: um módulo servidor e um módulo cliente. O módulo servidor cria um serviço que fica residente na máquina destino que será acessada, enquanto o módulo cliente é um utilitário que o usuário utiliza para acessar uma máquina destino com um servidor ssh funcionando. Assim, para um usuário utilizar o SSH apenas para fazer acesso a um servidor remoto, basta ter instalado no seu micro local de trabalho o pacote cliente. Veja que o cliente e o servidor são intencionalmente mantidos em pacotes separados justamente para permitir que o usuário instale apenas o que é necessário.

Para instalar apenas o módulo cliente do SSH para possibilitar conexões a máquinas remotas, basta instalar os seguintes pacotes:
# apt-get install openssh-client openssh-blacklist-extra openssh-blacklist

Para instalar o SSH no servidor, basta instalar o pacote “openssh-server” usando o gerenciador de pacotes, como em:
# apt-get install openssh-server

Na maioria dos casos, ao fazer uma instalação em modo servidor do sistema o SSH será instalado e configurado para subir no boot automaticamente, mas, de qualquer forma, não custa verificar. Nas distribuições derivadas do Debian, ele é ativado usando o serviço “ssh”, como em:
# /etc/init.d/ssh start

A configuração do servidor, independentemente da distribuição usada, vai no arquivo “/etc/ssh/sshd_config“, enquanto a configuração do cliente vai no “/etc/ssh/ssh_config“. Note que muda apenas um “d” entre os dois.

O uso básico do SSH é bastante simples, já que basta usar o comando “ssh login@servidor” para acessar o servidor remoto e, a partir daí, rodar os comandos desejados. Entretanto, essa é apenas a ponta do iceberg. O SSH é tão rico em funções que até mesmo os administradores mais experientes raramente usam mais do que um punhado das funções disponíveis.

Ao ser ativado, o padrão do servidor SSH é permitir acesso usando qualquer uma das contas de usuário cadastradas no sistema, pedindo apenas a senha de acesso. Para acessar o servidor “192.168.0.2”, usando o login “joao”, por exemplo, o comando seria:
$ ssh joao@192.168.0.2

Em vez de usar a arroba, você pode também especificar o login usando o parâmetro “-l” (de login), como em:
$ ssh -l joao 192.168.0.2

Você pode também acessar o servidor usando o domínio, como em:
$ ssh joao@gdhpress.com.br

Caso você omita o nome do usuário, o SSH presume que você quer acessar usando o mesmo login que está utilizando na máquina local. Se você está logado como “tux”, ele tentará fazer login usando uma conta “tux” no servidor remoto. Naturalmente, só funciona caso você use o mesmo login em ambas as máquinas.

Ao acessar micros dentro da rede local, você pode também chamá-los pelo nome, como em “ssh joao@servidor“. Neste caso, você precisará primeiro editar o arquivo “/etc/hosts” (no cliente), incluindo os números de IP das máquinas e os nomes correspondentes. O formato deste arquivo é bem simples, basta fornecer o IP e o nome da máquina correspondente, um por linha, como em:
127.0.0.1 localhost
192.168.0.2 servidor
192.168.0.6 athenas

A configuração do arquivo “/etc/hosts” vale apenas para a sua própria máquina, ele nada mais é do que um arquivo com aliases. Se você quiser que os apelidos sejam válidos também para as demais máquinas da rede, a melhor opção é configurar um servidor DNS de rede local.

Voltando à configuração do SSH, vamos a algumas opções importantes dentro da configuração do cliente SSH, que vão no arquivo “/etc/ssh/sshd_config“:

Outra opção é adicionar o parâmetro “-X” ao se conectar, como em “ssh -X tux@192.168.0.1”. A partir daí, você pode chamar os aplicativos gráficos normalmente, como se estivesse usando um terminal local.

O maior problema com o uso de aplicativos gráficos via SSH é que ele só funciona satisfatoriamente dentro da rede local. Via Internet os aplicativos gráficos ficam realmente muito lentos (mesmo em uma conexão de 4 ou 8 megabits), pois o protocolo do X é otimizado para uso local, com uso intensivo de pacotes de retorno e sem nenhum tipo de cache. Isso faz com que muitos administradores desabilitem o X11 forwarding no próprio servidor.

É altamente recomendável que seja desabilitado o login via SSH do root. Quando se desabilita este usuário, inibe-se ataque de “brute force” pois o atacante ainda não sabe qual usuário é valido nessa máquina. Se ficar o login remoto do root habilitado, o atacante só vai precisar descobrir a senha. Faça:

PermitRootLogin no

Aplicativos gráficos: Além de oferecer acesso via linha de comando, o SSH permite rodar aplicativos gráficos remotamente (X11 forwarding). Muitas distribuições trazem o recurso desabilitado por padrão. Nestes casos, edite o arquivo “/etc/ssh/ssh_config” , fazendo:

X11Forwarding no

Caso se tenha feito alterações nos arquivos de configuração do SSH e para que elas entrem em vigor, reinicie o servidor SSH:
# /etc/init.d/ssh restart

OBS: se você estiver tentando interligar dois micros diretamente através de um cabo, certifique-se que as interfaces estão realmente ativas. Muitas placas de rede exigem um cabo “cross”, só assim as placas se comunicarão.

Veja mais informações nos tutoriais do Guia do hardware.

Deixe um comentário, pois isto é muito motivante para continuarmos este trabalho

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s