Introdução
Olá pessoal, neste artigo irei tratar sobre o SSH
(Secure Shell), uma fantástica ferramenta de
administração remota, demonstrando através de
exemplos práticos como ele pode substituir não
só outras ferramentas de administração remota
como telnet, rlogin , rsh, etc como também serviços
como, por exemplo, o FTP. Tudo isto com a certeza de quem
está conectando na outra ponta e criptografia dos
dados.
O que é SSH?
Esta ferramenta foi originalmente desenvolvida pela
empresa finlandesa de mesmo nome (
http://www.ssh.fi
), e surgiu como uma maneira de suprir as deficiências
não só do telnet mas como também do rlogin
(Remote Login) e do rsh (Remote Shell). Com o tempo acabou
transformando-se na ferramenta padrão para a
administração de sistemas no mundo UNIX,
substituindo totalmente o telnet, tanto que o nome ``SSH''
é usado hoje não só para designar o programa e
a empresa que o criou como também suas variantes e
clones.
A grande vantagem do SSH está em encriptar os dados
que são transmitidos durante a sessão e
provavelmente ninguém gosta da idéia de ter suas
informações transitando pela rede totalmente
abertas, principalmente senhas. Além disso, é
possível com o SSH agregar outros serviços como,
por exemplo, o SCP (Secure Copy) que substitui com
tranquilidade e até com mais praticidade o bom e velho
FTP.
Cliente SSH
Existem diversos clientes disponíveis, desde o
original da SSH, que é um produto comercial com
versões para várias plataformas e sistemas
operacionais, até versões gratuitas. Neste artigo,
estarei demonstrando a utilização do
OpenSSH
(que é originário do projeto
OpenBSD
), que é uma versão adaptada do SSH de livre
distribuição desenvolvido por Tatu Ylonen mas com a
inclusão de novos recursos e outros algoritmos de
encriptação que não o RSA e DES, como o
Blowfish.
Caso você possua um outro cliente SSH, saiba que os
comandos e a utilização são praticamente
idênticos, logo se você já possui uma outra
versão não fique preocupado. Em virtude da
política de exportação de software de
criptografia nos EUA, as versões internacionais,
distribuições originárias de lá, não
podem conter o SSH, ficando com o usuário a tarefa de
instalá-lo. No caso das distribuições baseadas
em RPM utilize o serviço
RPM Find
, para as baseadas na Debian acrescente a linha
deb http://non-us.debian.org/debian-non-US stable/non-US
main contrib non-free
em
/etc/apt/source.list
e para quem usa Slackware pegue o pacote em
http://www.linux-mafia.org
. Para distribuições empacotadas fora dos EUA
não existe este problema.
Para quem vai compilá-lo, vale a pena lembrar que o
OpenSSH necessita do OpenSSL (a página é:
http://www.openssl.org
). E que não se esqueça de pegar o código
fonte já com os patches para Linux (existem
diferenças na parte de rede dos BSD e do Linux). E caso
você queira utilizar um cliente SSH a partir de uma
estação Windows(TM), para administrar suas
estações, saiba que existem clientes SSH para
Windows, como o PuTTY, o TeraTERM ou o SecureTTY, confira nas
páginas de download por outros programas e maiores
informações.
Preparando o servidor
O pacote do SSH traz tanto o cliente como o servidor, o
SSHD (ou SSH Dæmon). No caso de uma instalação
a partir de pacotes RPM ou DEB um script estilo System V (ou
seja, funciona com os parâmetros start, stop, restart,
etc...) será criado no respectivo diretório
/etc/(...)init.d. No caso do Slackware, que trabalha com
inicialização estilo BSD, o script /etc/rc.inet2
irá procurar pelo dæmon nos diretórios /sbin,
/usr/sbin ou /usr/local/sbin.
Caso sua a instalação, por algum motivo,
não esteja carregando automaticamente o SSHD durante a
inicialização verifique se não há algum
problema com as permissões dos arquivos, e se
persistindo o problema inclua-o no manualmente no rc.local ou
no final do rcS (no caso da Debian).