O SSH (Secure Shell) é um programa para logar em um outro computador usando uma rede, para executar comandos em uma máquina remota, e para mover arquivos de um computador para outro. Ele fornece autenticação forte e comunicação segura sobre canais inseguros. Ele foi feito para substituir o rlogin, rsh e rcp.
O SSH proteje o usuário de bisbilhoteiros da rede que roubam pacotes, onde senhas e texto desencriptados podem ser lidos por pessoas inescrupulosas.
O SSH é muito usado para logar em um UNIX de uma máquina Windows, Mac ou mesmo outro UNIX, na qual o tradicional 'telnet' e 'rlogin' não podem fornecer criptografia da senha e da sessão.
Usar o SSH é extremamente fácil. É só executar de um terminal o comando:
Onde:
Você também pode especificar outras opções, olhe a página manual do ssh.
Ficar digitando a senha toda vez que você vai utilizar o SSH é extremamente desconfortável, além de menos seguro que o método de chaves, o qual listaremos agora.
O SSH pode utilizar-se do conceito de Chave Pública e Privada para fazer sua autenticação remota, para isso você tem que gerar seu par de chaves:
Para as diferenças entre a RSA e DSA, vide http://www.casamirador.com/sabbott/DSS%20v.%20RSA.html
Atenção 1: se você quer usar chaves com o intuito de não precisar digitar senha, então sua "passphrase" deve ser vazia! (somente tecle enter). Atenção 2: Fique avisado que isto acaba sendo inseguro, pois se alguém tiver acesso à máquina ele pode acessar qualquer site que faça parte deste tipo de identificação!
Para utilizar este recurso com os servidores do IC, de modo que da sua casa você acesse sem precisar digitar a senha, crie sua chave usando o tipo rsa1 e depois acressente o conteúdo do arquivo ~/.ssh/identity.pub à ~/.ssh/authorized_keys do servidor.
Resumindo:
Muitos protocolos, como o IMAP(email), Pop3 (email), FTP (email), NNTP (news) e outros não se utilizam de criptografia alguma na identificação ou na sessão, ou seja, sua senha e o que você está digitando, lendo e fazendo fica "boiando" na rede. Qualquer leigo pode usar uma ferramenta como o Ettercap (http://ettercap.sf.net) pode ver tudo o que quiser. Vale a pena tentar usar o Ettercap para saber o perigo que uma transação descriptografada pode ser.
O SSH, por sua vez, pode fazer túneis de conexão criptografada sobre canais inseguros. Pode parecer complicado, mas a ídeia é que você pode criptografar qualquer transação entre um servidor que tenha SSH e um cliente. Para isso, você deve conectar-se ao servidor e especificar uma porta local na qual você se conectará, uma porta e um servidor para o qual você quer uma conexão segura.
Agora, é só se conectar à máquina local, na porta 8021:
Mais um exemplo, agora definindo vários servidores ao mesmo tempo: