O SSH (Secure Shell) é, simultaneamente, um programa de computador e um protocolo de rede que permite a conexão com outro computador na rede, de forma a executar comandos de uma unidade remota. Possui as mesmas funcionalidades do TELNET, com a vantagem da conexão entre o cliente e o servidor ser criptografada.
Uma de suas mais utilizadas aplicações é o chamado Tunnelling, que oferece a capacidade de redirecionar pacotes de dados. Por exemplo, se alguém se encontra dentro de uma instituição cuja conexão à Internet é protegida por um firewall que bloqueia determinadas portas de conexão, não será possível, por exemplo, acessar e-mails via POP3, o qual utiliza a porta 110, nem enviá-los via SMTP, pela porta 25. As duas portas essenciais são a 80 para HTTP e a 443 para HTTPS. Não há necessidade do administrador da rede deixar várias portas abertas, uma vez que conexões indesejadas e que comprometam a segurança da instituição possam ser estabelecidas pelas mesmas.
Para quebrar essa imposição rígida, o SSH oferece o recurso do Túnel. O processo se caracteriza por duas máquinas ligadas ao mesmo servidor SSH, que faz apenas o redirecionamento das requisições do computador que está sob firewall. O usuário envia para o servidor um pedido de acesso ao servidor pop.xxxxxxxx.com pela porta 443 (HTTPS), por exemplo. Então, o servidor acessa o computador remoto e requisita a ele o acesso ao protocolo, retornando um conjunto de pacotes referentes à aquisição. O servidor codifica a informação e a retorna ao usuário via porta 443. Sendo assim, o usuário tem acesso a toda a informação que necessita. Tal prática não é ilegal caso o fluxo de conteúdo esteja de acordo com as normas da instituição.
O SSH faz parte da suíte de protocolos TCP/IP que torna segura a administração remota de um servidor Unix.
No Linux, O sshd é o módulo servidor (que deve ser ativado no ntsysv, ou no utilitário e configuração da distro usada), enquanto o ssh é o módulo cliente, incluído em praticamente todas as distribuições Linux, mesmo as relativamente antigas. Para usar, basta usar o comando "ssh -l login nome_ou_IP_da_maquina", como em "ssh -l morimoto 192.168.0.2" ou "ssh -l morimoto beta-2" para abrir o terminal do usuário morimoto no host beta-2. O SSH inclui muitas opções de segurança, a documentação esta disponível no site: http://www.openssh.com/
A segurança é justamente a principal vantagem sobre o Telnet, onde os dados, incluindo senhas trafegam na forma de texto pela rede ou pela Internet, uma carta aberta para quem desejar ler. O SSH por sua vez pode ser praticamente indecifrável se bem configurado.Existem também clientes SSH para Windows, como por exemplo a versão da SSH Security, que tem vários recursos mas é gratuita apenas para universidades e usuários domésticos. O link é: http://www.ssh.com/
O SSH da SSH Security e o OpenSSH são totalmente intercompatíveis, permitindo que você acesse um servidor Linux através de uma máquina Windows, como no caso do Telnet.Além de oferecer acesso via linha de comando, o SSH permite rodar aplicativos gráficos remotamente, caso as duas máquinas rodem Linux. Dando um "konqueror" por exemplo, o aplicativo não será inicializado no servidor, mas sim na sua máquina. Note que este recurso só funciona nos clientes Linux, o cliente Windows está limitado ao modo texto.Você pode usar o SSH até mesmo via Internet. Uma conexão via modem vai ser suficiente para trabalhar no modo texto, mas a coisa complica se você quiser rodar aplicativos gráficos. Com uma conexão via cabo ou ADSL eles já ficam usáveis, mas o ideal é uma rede local, onde os aplicativos rodam com o mesmo (ou praticamente o mesmo) desempenho com que rodam no servidor.