|
SSH
Secure Shell
Salve Salve Pessoal, comumente acontece com alguns de nós de estar a conversar com algum amigo e no desenrolar da conversa um de nós precisa acessar o computador do outro, seja para ajudá-lo a fazer alguma coisa (configurar alguma programa), ou ainda para fazer o download de algum arquivo ou algo do gênero. Podemos dizer que o SSH é uma "mão na roda" como diz o termo frequentemente usado pelos nossos amigos brasileiros.
Para muitos o processo de instalação e configuração de um SSH pode parecer "coisa de outro mundo", mas na verdade não é bem assim.
Vamos começar por entender o que é um SSH.
O que é SSH?
[[SSH]] - [[Secure Shell]], o Shell é um programa que 'recebe',
'interpreta' e executa comandos, é usado através de um prompt de
comando (linha de comandos), resumindo pode-se dizer que o Shell é um
interpretador de comandos para sistemas Unix - GNU/Linux.
Existe SSH para Windows?
Eu pensava que não existisse, mas existe sim, apesar de ser pouco usado, pois o ssh é mais usado mesmo no Linux, mas tem para Windows sim e pode ser encontrado aqui . O SSH pode ser comparado a um outro programa para
a plataforma Windows, trata-se do [[Telnet]], na verdade o SSH e o
Telnet desempenham a mesma tarefa, com a grande diferença que o Telnet
não possui criptografia e o SSH possui, ou seja, ao trabalharmos com o
Telnet, tudo o que escrevemos, todos os parâmetros que passamos durante
a conexão são enviados em texto puro, o que implica dizer que se
existir um [[sniffer]] na rede as informações poderão ser coletadas tão
facilmente como 'roubar um sambapito de um kandengue' é ai que entra o
nosso amigo SSH, para garantir que ninguém vai receber o sambapito do
kandengue, ou seja, as informações transmitidas durante a conexão SSH
são criptografadas o que nos dá total confiabilidade nessa ferramenta.
O SSH é usado por grandes empresas para administração remota, sistemas
de backup e entre outros, por isso podemos dizer que é uma ferramenta
confiável.
O SSH é um protocolo de rede e ao mesmo tempo um programa para acesso
remoto, funciona sobre a camada de Aplicação da pilha de protocolos do
modelo TCP/IP, e exatamente por fazer parte do protocolo TCP/IP garante
maior confiabilidade.
A implementação do SSH
Para os mais desprovidos de conhecimento nesse assunto não há
motivo para pânico porque esse artigo vai explicar de maneira simples,
básica e funcional como configurar o SSH.
Vou acreditar que estás a usar um SO (Sistema Operativo) Linux e que
este possa vir a ser uma distribuição [[Debian]], muitos sistemas vêm
já com o SSH instalado, mas como não somos 'magos do oriente' para
adivinhar se isso é verdade ou não, vamos digitar o seguinte comando:
$dpkg -l ssh
Vale salientar que o $ ( cifrão, ou dólar como diria o meu professor)
não faz parte do comando, e sim do sistema, ou seja, o '$' indica que
estamos no prompt de comando como usuário normal, caso estivemos
autenticados como root (o que não é muito aconselhável fazer
frequentemente, só em casos que seja realmente necessário), o símbolo
seria '#' (cardinal, ou jogo da velha segundo um amigo meu :) )
Bom, feito isso será apresentada uma tela com o pacote ssh e a sua
respectiva descrição, que na verdade vai conter o nome do pacote, a
versão e a descrição, que vai estar mais ou menos assim:
||/ Nome Versão Descrição
+++-==============-==============-==========
ii ssh 4.3p2-8ubuntu1 Secure shell client and server
Se a tela mostrada for que nem essa de cima é sinal que o pacote está
instalado, caso contrário sinta-se no direito, obrigação e dever de
instalar
através do seguinte comando:
$sudo apt-get install ssh
Hummm.. feito isso aguardamos alguns segundos até que o pacote seja
instalado no sistema e pronto, estamos aptos para começar a
configuração.
Vamos agora editar o ficheiro de configuração do ssh que geralmente fica em:
/etc/ssh
Faremos isso com o comando:
$vi /etc/ssh/ssh_config
ssh_config é o nome do ficheiro de configuração do SSH, ele deverá ser semelhante a isso:
# This is the ssh client system-wide configuration file. See
# ssh_config(5) for more information. This file provides defaults for
# users, and the values can be changed in per-user configuration files
# or on the command line.
# Configuration data is parsed as follows:
# 1. command line options
# 2. user-specific file
# 3. system-wide file
# Any configuration value is only changed the first time it is set.
# Thus, host-specific definitions should be at the beginning of the
# configuration file, and defaults at the end.
# Site-wide defaults for some commonly used options. For a #comprehensive
# list of available options, their meanings and defaults, please see the
# ssh_config(5) man page.
Host *
# ForwardAgent no
# ForwardX11 no
# ForwardX11Trusted yes
# RhostsRSAAuthentication no
# RSAAuthentication yes
# PasswordAuthentication yes
# HostbasedAuthentication no
# BatchMode no
# CheckHostIP yes
# AddressFamily any
# ConnectTimeout 0
# StrictHostKeyChecking ask
# IdentityFile ~/.ssh/identity
# IdentityFile ~/.ssh/id_rsa
# IdentityFile ~/.ssh/id_dsa
Port 22
Protocol 2,1
# Cipher 3des
# Ciphers aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes$
# EscapeChar ~
# Tunnel no
# TunnelDevice any:any
# PermitLocalCommand no
SendEnv LANG LC_*
HashKnownHosts yes
GSSAPIAuthentication yes
GSSAPIDelegateCredentials no
Ok, estamos dentro do arquivos, todas as linhas que começam por '#' (jogo da velha :)) significam que estão comentadas e que não serão interpretadas pelo pelo interpretador (uma redundância mas sei que vocês me desculpam)
A porta padrão para o SSH é a porta 22 logo essa linha deverá estar descomentada, e a linha logo abaixo a da porta é a do protocolo, neste caso estão habilitadas as duas versões do protocolo SSH, a versão 1 e a versão 2, não entrarei em maiores detalhes sobre o restante da configuração porque não é o foco neste momento. Mas caso o estimado amigo(a) queria saber mais deixo aqui um link com os detalhes sobre cada uma das opções do ssh_config (só que estão em inglês, mas como sei que todos vocês dão-se muito bem com a língua de Shakspeare, não termos problemas nesse sentido). E para ser mais redundante ainda, essas mesmas informações sobre as opções do ssh_config podem ser encontradas ao digitar no prompt o seguinte:
$man ssh_config
:)
Agora precisamos inicializar o serviço responsável por colocar o SSH no ar, para isso vamos em /etc/init.d/ através do seguinte comando reinicializamos o serviço:
$/etc/int.d/ssh restart
Bom, se conseguir chegar até aqui é sinal que as coisas estão a andar como esperado, caso não tenha conseguido é porque as coisas estão a dar errado e estão a ser da pior forma possível (Lei de Murphy) :)
Bom, até aqui tudo bem o SSH está configurado, agora só precisamos adicionar um usuário ao sistema a fim de que ele possa fazer o logon remotamente, para isso usaremos o seguinte comando:
$sudo adduser Juritovaldo
*Juritovaldo é o nome do usuário tá bem? Não me confundam Juritovaldo com comando ... hehehehe
Feito isso será pedido que insiras a senha para o usuário Juritovaldo, depois de digitar a senha será solicitada novamente, e logo em seguida serão solicitadas informações como nome completo e tudo mais, se quiser pode ir dando Enter até a hora em que ele porguntar se as informações acima estão corretas... ai é só dizer que sim :)
Bom, neste momento o Juritovaldo está em outro computador mas que pertence a mesma rede, através do prompt d Linux ele só tem que digitar:
$ssh [nome_do_usuario@ip_da_maquina_com_o_SSH]
Exemplo: $ssh
Este endereço de e-mail está protegido de spam bots, pelo que necessita do Javascript activado para o visualizar
Ai será solicitada a senha para o Juritovaldo poder acessar o sistema remotamente.
Mas e no caso se o juritovaldo não estiver na mesma rede? E se ele estiver na Jamba e quiser se conectar ao computador do Hepotamedes que está em Luanda? Bom, neste caso teríamos que usar um [[NAT]] ([[Networ Address Translator]]}.
Espero poder ter ajudado a todos a melhor compreender o conceito de ssh.
Abraços,
|