Acesso atraves de OpenSsh
Colaboração: Renato Rudnicki
Data de Publicação: 30 de janeiro de 2008
Este artigo tem o objetivo de explicar o funcionamento de como acessar 2 ou mais máquinas remotas de maneira segura. Espero que ajude ;D.
Introdução ao OpenSsh
Ssh - Secure Shell - é um programa que tem como objetivo acessar máquinas remotamente de maneira segura. O telnet e o OpenSsh a grosso modo tem o mesmo objetivo: estabelecer uma conexão entre dois computadores, porém o telnet é muito mais inseguro, pois a conexão do telnet não é criptografada, ao contrário do OpenSsh. Neste artigo, estou utilizando o pacote OpenSsh, pois é uma versão livre e atualizada. Este tutorial foi testado em um Conectiva 10, porém deve funcionar nas outras distros também. Aqui estou usando o gerenciador de pacotes rpm, que é especifico para Conectiva, Red Hat, Fedora, etc. É um recurso muito fãcil de se utilizar, não precisando quase nada de configuração ;-D
Funcionamento
No momento da instalação do pacote openssh em um servidor, o utilitário rpm
gera 2 chaves - chave pública e chave privada do host (1024 bits :D) - onde
essas chaves são armazenadas em um diretorio chamado /etc/ssh.
Os arquivos
que contém as chaves geradas pelo openssh no momento da instalação são:
/etc/ssh/ssh_host_key /etc/ssh/ssh_host_key.pub /etc/ssh_host_dsa_key.pyb
Estas chaves serão utilizadas mais tarde para provar para o servidor a sua autenticidade para os clientes, pois ip não é uma autenticação confiável.
Um outro par de chaves (pública e privada) é gerado sempre que o serviço ssh é inicializado ou a cada hora (intervalo de tempo configurável). Este outro par de chaves é chamado chaves de Servidor, tem 768 bits, e não é gravado em disco, ficando apenas na memória do servidor, ou seja, temos mais 1 par de chaves: Primária do servidor e pública do servidor. Os passos para se estabelecer uma conexão são:
- O clienste envia pedido de conexão para o servidor;
- O servidor responde enviando as 2 chaves públicas para o cliente.
- Se é a primeira vez que o cliente se conecta ao servidor, o cliente ainda não conhece a chave pública do servidor, assim, ele "avisará" ao operador que não será possível verificar a autenticidade do mesmo. Caso o operador opte por continuar com a conexão, a chave pública do host do servidor será armazenada no HD do cliente para futura verificação.
Pré-Requisitos de Instalação
Para que possa funcionar a conexão de OpenSsh, devem ser observados os seguintes detalhes:
- O protocolo tcp/ip deve estar instalado e funcionando
- Devem estar instalados os seguintes softwares:
- openssh
- openssh-clients
- openssh-server
Existem outros pacotes opcionais que não foram incluidos na listagem, como os pacotes de documentação e desenvolvimento.
- O Servidor e o Cliente devem estar configurados
Caso você esteja utilizando um linux que utilize pacotes rpm, você pode usar o seguinte comando para baixar os pacotes: rpm -hiv openssh*
Configuração do Servidor OpenSsh
Quase toda configuração do servidor openssh está baseada nos parâmetros indicados no arquivo /etc/ssh/sshd_config.
Se você visualisar este arquivo, poderá notar que a maioria das configurações podem ser preenchidas com Yes / No.
Opções de configuração do servidor OpenSsh
Protocol | Especifica as versões do protocolo que serão aceitas pelo servidor. |
LoginGraceTime | Define o tempo limite, em segundos, de inatividade para um login, onde terminado este tempo, a sessão é finalizada. |
KeyRegenerationInterval | Define o tempo em segundo do tempo de duração das chaves do servidor. |
PermitRootLogin | Especifica se o servidor irá aceitar logins do root. |
PasswordAuthentication | Especifica se será utilizado autenticação de senha. |
PermitEmptyPasswords | Especifica se o servidor ssh aceitará login de contas sem senha. |
Obs: em regras gerais não é necessário efetuar alterações nesse arquivo, pois sua configuração padrão deverá funcionar.
Apos feito isso, é necessário inicializar o serviço correspondente para que os clientes possam se conectar:
service sshd start
Configuração do cliente ssh
A princípio, para o openssh funcionar, também não é necessário alterar nenhum arquivo de configuração do cliente. Mas caso você queira se aprofundar mais, você pode ler a manpage do ssh, sshd.
Utilizando o openssh na prática !!! Há varias maneiras de utilizar o openssh. Algumas delas são:
ssh user@ip_maquina | tenta efetuar uma conexão à máquina_remota (onde deverá estar rodadno o openssh sever). o usuário deverá estar cadastrado na máquina remota. |
ssh -l user maquina_remota | idem ao comando anterior. |
ssh maquina_remota | tentar efetuar uma conexão a máquina remota como usuário da maquina local que disparou o comando. Deve ter sido mantido a configuração padrão) |
O comando scp substitui o comando cp e permite que os arquvios sejam transmitidos entre máquinas de maneira segura.Ex:
scp arquivo.txt user1@maquina1:/home/teste
O comando acima copia o arquivo de nome arquivo.txt que está na máquina local para o diretório /home/teste da maquina remota de nome máquina1.
scp user@maquina1:/home/teste/arquivo.txt
Copia o arquivo de nome arquivo.txt do diretório /home/teste que está na máquina e nome máquina 1 para o diretório corrente na máquina local.
Obs1: Em ambos os casos poderia ser utilizado o endereço ip ao invés do nome da máquina remota.
Obs2: Em ambos os casos, será solicitada a senha do usuário user1 na máquina remota.
Para que possa acessar a máquina remota sem solicitação de senha, será necessário configurar tanto o servidor, quanto o cliente.
Configuração do servidor
- Gerar uma chave RSA ou DSA sem o uso de senha (ver o arquivo /etc/ssh/sshd_config) (a escolha por RSA ou DSA depende da versão do seu ssh)
- Copiar a chave pública para o servidor (maquina.remota:~/.ssh/authorized_keys - RSA (ou DSA))
- Certifique-se que seu diretorio pessoal e acima dele possuem permissões seguras, onde apenas o dono dos mesmo tem permissão de escrita.
Configuração do cliente
Assim que tiver a chave privada correta com você, quando executar um ssh na máquina remota, sua senha não será solicitada. Neste exemplo, foi usado chaves RSA versão 1, e os comandos abaixo se referem a ela.
ssh-keygen -t rsa1 -f ~/.ssh/id_rsa1
(tecle Enter para deixar a conexão sem senha). Este comando irá criar 2 arquivos:
~/.ssh/id_rsa1
(com chave privada) e ~/.ssh/id_rsa1.pub
(com chave publica)
Enviar ao servidor a chave pública, que está no arquivo id_rsa1.pub
Obs: Este exemplo funciona de Linux para Linux. Caso você queira utilizar Linux para Windows, você pode utilizar o programa Putty, ou pscp, psftp, teraterm.
Mulheres, computadores e videogames
Colaboração: Fernanda dos Santos
Encontrei no blog: http://grubelilo.blogspot.com/2007/12/mulheres-computadores-e-videogames.html
Um bom texto sobre o que afasta as mulheres dos setores de tecnologia, uma boa leitura para homens e mulheres.