Projecto activo desde 1 de Janeiro de 2011
SSH
Em informática o Secure Shell ou SSH é, simultaneamente, um programa de computador e um protocolo de rede que permite a ligação com outro computador na rede, de forma a executar comandos de uma unidade remota. Possui as mesmas funcionalidades de telnet, com a vantagem da ligação entre o cliente e o servidor ser feita com criptografia.
Muitas pessoas pensam em SSH como uma alternativa segura ao telnet, assim como scp e sftp como os equivalentes seguros do rcp e ftp. Mas o SSH é muito mais do que uma shell remota criptografada. Como o SSL, ele usa criptografia forte com chave pública para validar o servidor remoto e criptografar os dados. Ao invés da PKI, ele utiliza uma memória de "impressão digital" (fingerprint) de chaves que é verificada antes que uma ligação seja autorizada. Ele pode usar senhas, chaves públicas ou outros métodos para a autenticação do utilizador.
Muitas pessoas também não sabem que o SSH pode actuar também como um túnel de criptografia genérico, ou mesmo como um proxy de criptografia para a web. Através do estabelecimento inicial de uma ligação SSH para uma localização próxima, confiável, de um servidor remoto (ou no próprio servidor), protocolos inseguros podem ser protegidos contra espionagem e ataques.
Mesmo que esta técnica seja um tanto avançada para muitos utilizadores, arquitectos de rede podem usar SSH para criptografar o tráfego entre links não confiáveis, como links ponto-a-ponto wireless. Como as ferramentas estão livremente disponíveis e podem ser usadas sobre o padrão TCP, qualquer utilizador treinado pode implementar ligações SSH por si próprio, conseguindo sua própria criptografia fim-a-fim sem a intervenção do administrador.
O OpenSSH é provavelmente a implementação mais popular em plataformas do tipo Unix. Implementações livres como Putty e WinSCP estão disponíveis para o ambiente Windows. O OpenSSH também é executável em Windows sobre o pacote Cygwin. Os exemplos abaixo assumem que você está a usar a versão mais recente do OpenSSH.

Utilização
Para estabelecer um túnel criptografado de uma porta na máquina local para uma porta no site remoto, use a chave -L. Por exemplo, suponha que você queira encaminhar todo o tráfego do proxy web sob um link criptografado para um servidor squid em squid.example.net. Faça o encaminhamento (forward) da porta 3128 (a porta padrão do proxy) usando o seguinte comando:
ssh -fN -g -L3128:squid.example.net:3128 squid.example.net
A chave -fN instrui o SSH para ficar no modo background (libertando a linha de comando) após a ligação. O -g permite que outros utilizadores de seu segmento de rede se liguem à máquina local usando-a para a criptografia sobre o link não confiável. O OpenSSH irá usar uma chave pública para a autenticação, caso você tenha configurado uma, ou irá solicitar uma senha de acesso para o site remoto. Você também pode configurar seu navegador para se ligar à porta local 3128, como seu serviço de proxy web. Todo o tráfego web será, então, criptografado antes da transmissão para o site remoto.
O SSH pode também actuar como um proxy dinâmico SOCKS4 ou SOCKS5. Isto permite que você crie um web proxy que fique responsável pela criptografia, sem a necessidade de configurar o Squid. Note que este não é um proxy de armazenamento local (caching proxy), ele simplesmente criptografa o tráfego.
ssh -fN -D 8080 remote.example.net
Configure seu navegador para usar SOCKS4 ou SOCKS5 na porta local 8080 e siga navegando. O SSH pode criptografar os dados em qualquer porta TCP, incluindo as que são usadas para email. Ele pode até comprimir os dados enviados, o que pode diminuir a latência em links de baixa capacidade.
ssh -fNCg -L110:localhost:110 -L25:localhost:25 mailhost.example.net
A chave -C liga a compressão. Você pode adicionar tantas regras de encaminhamento de portas (port forwarding) quanto desejar, usando a chave -L múltiplas vezes. Note que, a fim de se ligar a uma porta menor que a 1024, você deverá ter privilégios de utilizador root na máquina local. Estes são apenas alguns exemplos da flexibilidade do SSH. Com a implementação de chaves públicas e usando o SSH como agente de encaminhamento, você pode automatizar a criação de túneis criptografados por dentro de sua rede wireless, protegendo sua comunicação com criptografia forte e autenticação.
Simplificando
Em Micro$oft Windows:
A forma mais fácil e simples de utilizar SSH neste tipo de sistema é através de um cliente gráfico como por exemplo o Putty
Veja como utilizar aqui.
Em Linux/Unix:
Basta abrir um terminal e digitar:
ssh <nome-de-utilizador> @ <ip-da-maquina-remota>
(por exemplo)
ssh virgulino@192.168.96.69
De seguida é nos pedido a password.
Ver ainda
Links externos
- Saiba mais sobre SSH (em Inglês)
- Manual de Utilização (em Inglês)
- OpenSSH (em Inglês)
- SSH (em Inglês)
- PUTTY Cliente SSH para Windows. (em Inglês)
- WinSCP Cliente SFTP para Windows. (em Inglês)
- Fugu SSH Cliente SSH para OSX. (em Inglês)
- Como criar um túnel/proxy seguro (vídeo em flash). (em Inglês)
- Drop Bear - Cliente/Servidor SSH usado em routers freifunk assim como em várias distribuições *WRT. (em Inglês)
- Documentação - Como usar o putty para uma ligação telnet ou ssh no Fórum da comunidade