Servidor SSH (Secure Shell Hosting)

Venho mostrar como configurar um servidor SSH (tanto no lado servidor SSH, quanto ao lado do cliente SSH), tendo como plataforma de implementação do Debian Lenny.

[ Hits: 239.788 ]

Por: Danilo Perillo Chiacchio em 18/11/2010


Usando chaves de autenticação



Por mais seguras que sejam as senhas, sempre existe uma pequena possibilidade de que alguém em busca de um ataque descubra alguma delas.

Ao invés de depender da senha para acessar o servidor SSH, pode-se utilizar 1 par de chaves de autenticação, onde a chave pública é instalada nos servidores que serão acessados e a chave privada (que nunca sai de sua máquina local) é protegida por uma "passphrase", sem a qual a chave privada de torna inútil.

Gerando o par de chaves no cliente:

ssh-keygen -t rsa
$ sudo chmod 600 .ssh/id_rsa
(ajustando as permissões do arquivo)

Esse comando deve ser executado usando seu login de usuário, ou seja, o mesmo login utilizado para acessar o servidor remoto.

Depois de executado o comando, será necessário cadastrar a "passphrase", e após isso, serão gerados 2 arquivos, .ssh/id_rsa (chave privada) e .ssh/id_rsa.pub (chave pública) dentro do seu diretório home.

Depois de gerar o par de chaves, temos que instalar a chave pública no servidor, permitindo que ela seja usada para autenticação. Segue o comando:

ssh-copy-id -i ~/.ssh/id_rsa.pub dan@192.168.1.10

Neste exemplo 192.168.1.10 é o endereço IP ou domínio do servidor.

Esse processo de cópia faz com que o conteúdo do arquivo .ssh/id_rsa.pub da máquina cliente seja copiado para o arquivo .ssh/authorized_keys do servidor remoto, permitindo assim a conexão de ambos. Isso também pode ser feito manualmente, em caso de problemas.

Com isso, podemos desativar o uso de senhas e desativar qualquer outra forma de autenticação com exceção das chaves, incluindo as duas opções abaixo no arquivo de configuração do servidor SSH (/etc/ssh/sshd_config):

PassWordAuthentication no #elimina o uso de senhas
UsePAM no #elimina o uso de qualquer tipo de autenticação, ao menos que sejam as chaves

Para essas configurações entrar em vigor, basta reiniciar o servidor SSH:

# /etc/init.d/ssh restart (no Debian e seus derivados);

# service sshd restart (no Red Hat, Mandriva, Fedora e CentOS);

Página anterior    

Páginas do artigo
   1. Instalação
   2. Configuração do servidor SSH
   3. Usando chaves de autenticação
Outros artigos deste autor

Instalando e Configurando o SAMBA3 no FreeBSD 8.1 Release

Configuração de servidor DHCP no Debian Linux

Anon-Proxy no Debian Lenny

Leitura recomendada

Quebrando chave WEP (Wired Equivalent Privacy) - parte 1

Sudo 1.8.12 - Parte II - Como sudo funciona

Melhorando a segurança de servidores GNU/Linux (Parte 1)

Como saber se houve uma invasão

Fundamentos da criptografia assimétrica

  
Comentários
[1] Comentário enviado por obernan em 09/01/2011 - 23:30h

Cara, valeu pelas boas dicas de ssh !!!!

[2] Comentário enviado por danchiacchio em 10/01/2011 - 11:07h

Bom dia Amigo obernan,

Que bom que lhe ajugou, fico muito feliz.

Abraços,
Danilo.

[3] Comentário enviado por andersonlves em 07/03/2011 - 12:39h

POw man
Muito bom seu artigo. Gostei muito.

Parabens

VC so pode me explicar qual a funcionalidade na pratica das seguintes linhas:

- banner
- Subsystem sftp /usr/lib/sftp-server
Obrigado

Anderson Pinho

[4] Comentário enviado por andersonlves em 07/03/2011 - 12:41h

Desculpe Danilo

Mais surgi outra dúvida

No lugar dos nomes de user liberados ou bloqueados eu posso criar um arquivo txt com os nomes?

Grato

Anderson Pinho

[5] Comentário enviado por danchiacchio em 07/03/2011 - 17:58h

Ola Amigo Anderson, tudo bem?

Segue abaixo algumas explicações:

SFTP (Secure File Transfer Protocol)

Cenário:
Debian Lenny 5.07;
OpenSSH 5.1;

SFTP pode ser considerado um programa (ou funcionalidade) que pode ser habilitada no servidor SSH. Ele é um ftp, mas como uma camada de segurança implementada pelo protocolo SSH.

Habiltando a utilização do mesmo no servidor SSH:

Passo 1: Editar o arquivo de configuração do servidor SSH e inserir a linha abaixo para podermos liberar o uso do modulo sftp:

Subsystem sftp /usr/lib/sftp-server

Passo 2: Feito isso, podemos reiniciar o servidor SSH, para que essa alteração entre em vigor. Podemos fazer isso atraves do comando:

# /etc/init.d/ssh restart

Passo 3: A partir de uma máquina cliente (pode ser Linux, BSD, Windows - desde que tenha suporte a SSH e ao cliente SFTP), vamos fazer o acesso ao servidor SFTP, atraves do comando abaixo:

# sftp -oPort=2222 root@192.168.1.200

Explicando:

-oPort=2222: Indica a utilização de uma opção extra ao comando "sftp". No caso, estou especificando a porta que o Servidor SSH está utilizando;

root@192.168.1.200: Aqui, estamos especificando o usuário@endereço IP do Servidor SSH;

Passo 4: Feito isso, bastamos aceitar a cópia da chave publica do servidor SSH (essa chave será copiada para o arquivo "known_hosts" em nosso diretório pessoal) e digitar a senha. Pronto, já estamos conectados no servidor SSH.

Passo 5: Um exemplo simples de utilização, é fazer o download de algum arquivo localizado no servidor SSH para a nossa máquina local. Quando conectados no servidor, um prompt parecido com o abaixo será mostrado:

sftp>

Para baixarmos o arquivo /etc/ssh/sshd_config do servidor para nossa máquina, basta digitar o comando abaixo:

sftp> get /etc/ssh/sshd_config

Sobre o banner, conforme está no artigo, ele é utilizado para mostrar algum mensagem ao usuário antes do logon via SSH.

Sobre a opção de arquivo externo para declarar usuários, eu acredito que não é possivel esse recurso. Mas, o que pode ser feito e que é muito util, e criar um grupo de usuários no sistema e inserir os usuários que terão acesso ao SSH. Assim, a linha abaixo pode ser inserida no arquivo de configuração do servidor SSH:

AllowGrups <Nome Grupo>

Espero ter ajudado.

Obrigado – Danilo ;-)

[6] Comentário enviado por tiagobls em 18/07/2016 - 21:21h

Boa noite, pessoal eu não sei se estou no artigo correto, mas creio que sim heheh.. Estou começando agr na plataforma Linux, e queria instalar um servidor SSH tunnel em minha máquina e acessar minha internet wifi em meu dispositivo android através do Http Injector, pra isso eu precisaria criar um user e senha no servidor, configurar porta 443 ou 22, configurar um host e proxy também. Alguém poderia me dar uma ajuda de como começar e por onde começar?

peço desculpa se não fui claro.
Obrigado desde já.

[7] Comentário enviado por danchiacchio em 18/07/2016 - 22:16h

Olá tiagobls, Boa Noite. Tudo bem?

Eu particularmente nunca precisei fazer isso, mas procurando na Internet encontrei alguns links e gostaria de compartilhar com você:

http://psiphonhandler.blogspot.com.br/2015/10/http-injector-aprenda-criar-configuracao.html
http://fenomenodanet.blogspot.com.br/2015/10/http-injector-como-criar-conta-ssh.html

Não sei se é exatamente o que procura, mas espero ter ajudado de certa forma.

Abraços,
Danilo.

[8] Comentário enviado por fernando_angeli em 08/08/2016 - 14:19h

Pessoal se alguém poder me ajudar por favor, agradeço , desculpem me se eu estiver no lugar errado pois sou novo por .
Minha dúvida é :
Eu tenho um servidor Debian na vdd estou tentando configurar , eu gostaria de acessa lo via Android , através da porta 443 e usar o IP do servidor como proxy na porta 80 , 8080, e amabas , tenho pequenas noções do sistema já atualizou os repositórios instalei o editor de texto nano e algumas coisas a mais , só estou perdido nessa questão do proxy, no meu caso eu quero fazer algo meu mesmo sem precisar usar aplicativos de terceiros para pode se conectar a internet desde agradeço pelo espaço/compreensão

[9] Comentário enviado por ionsisbr em 25/11/2016 - 06:12h

Preciso de uma grande ajuda:

Comprei um VPS CentOS e acesso via ssh.
Tem algum comando para restaurar a configiração de fabrica,
uma vez que comandos como MAKE não estao funcionando??????
Muito obrigado

[10] Comentário enviado por linus black em 19/05/2017 - 13:11h

ótimo artigo, mas vc poderia me dizer como eu poderia deixar isso automático exemplo:
quando o cliente entra na área do wifi do server ele autentica e transfere arquivo pré determinado
dês de já obrigado!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts