Propaganda

Como autenticar por SSH com chaves em vez da chave de senhasSSH é uma ótima maneira de obter acesso remoto ao seu computador. Semelhante ao FTP, você pode se conectar por SSH FTP O que é SSH e como ele é diferente do FTP [explicação sobre a tecnologia] consulte Mais informação para obter acesso seguro a um servidor de arquivos com o seu Cliente FTP Transferências de arquivos mestre de FTP em todos os seus sites com FileZillaUm grande número de clientes de FTP antigos tinha problemas quando se tratava de transferências de arquivos grandes. Os aplicativos tiveram os tempos limite normais que você esperaria quando o computador ficasse parado por 15 a ... consulte Mais informação , acessando rapidamente arquivos remotos ou até mesmo montando um disco de rede em seu computador. Mas há mais no SSH do que acesso remoto a arquivos. Login por SSH no Terminal (ou usando PuTTY no Windows) oferece acesso remoto ao shell (afinal, SSH é a abreviação de Secure SHell). É como eu gerencio meu servidor de mídia à distância.

Quando você abra as portas O que é encaminhamento de porta e como ele pode me ajudar? [MakeUseOf explica]

instagram viewer
Você chora um pouco por dentro quando alguém lhe diz que há um problema de encaminhamento de porta e é por isso que seu aplicativo novinho em folha não funciona? Seu Xbox não permite que você jogue, seus downloads de torrent se recusam ... consulte Mais informação no seu roteador (porta 22 para ser exato), você não pode acessar apenas o servidor SSH de dentro da sua rede local, mas de qualquer lugar do mundo.

No entanto, você não quer correr o risco de usar uma senha fraca para autenticação. Se alguém obtiver acesso ao seu computador por meio de SSH, terá acesso completo ao shell. Só para ficar claro, isso não é algo que queremos. Felizmente, é muito fácil configurar seu servidor SSH global de uma maneira muito segura usando a autenticação baseada em chave e desabilitando a autenticação de senha em seu servidor.

Isso é para mim?

É tentador relaxar com segurança pessoal. Se você estiver usando o servidor para fins privados, pode pensar que as pessoas simplesmente não sabem sobre o seu servidor e, portanto, não tentarão hackea-lo - segurança através da obscuridade. Isso seria um muito suposição errada. Como (a maior parte) do tráfego SSH é transmitido na porta 22, os invasores verificam rotineiramente a visibilidade da porta 22 em endereços IP aleatórios, seguido por um ataque de força bruta. Esta é uma das maneiras como os botnets são feitos para uso em Ataques DDOS O que é um ataque DDoS? [MakeUseOf explica]O termo DDoS desaparece sempre que o ciberativismo surge em massa. Esse tipo de ataque chega às manchetes internacionais por vários motivos. Os problemas que impulsionam esses ataques DDoS são frequentemente controversos ou altamente ... consulte Mais informação .

Para encurtar a história: se você transmitir seu servidor SSH pela Internet (ou seja, encaminhar a porta 22), então sim, isso é para você.

A ideia de logins SSH baseados em chave

Logins SSH baseados em chave contam com a ideia de criptografia de chave pública. Seria muito longe para explicar os meandros, mas vamos tentar pintar um quadro simples do que está acontecendo nos bastidores.

No processo abaixo, seu computador cliente gera duas chaves: uma chave pública e uma chave privada. A ideia geral é que você pode criptografar dados com a chave pública, mas somente descriptografá-los com a chave privada. Colocaremos a chave pública no servidor e solicitaremos que ele criptografe todas as comunicações de saída com ele. Isso garante que apenas os clientes com a chave privada possam descriptografar e ler os dados.

1. Instale OpenSSH

Primeiro, vamos configurar um servidor SSH usando OpenSSH. Se você já tem um servidor SSH em execução e só deseja saber como configurar a autenticação baseada em chave, pode pular esta etapa. Use seu gerenciador de pacotes favorito para instalar o aplicativo do servidor OpenSSH. A maneira mais simples ainda pode ser executar o apt-get comando do Terminal.

sudo apt-get install servidor openssh

Digite sua senha, confirme e aguarde um minuto até que a instalação seja concluída. Parabéns, agora você tem um servidor SSH. (Essa foi fácil!)

ubuntu-install-openssh

Você pode usar o aplicativo no estado em que se encontra ou editar /etc/ssh/sshd_config para configurá-lo. Execute o man sshd_config comando no Terminal para obter mais informações. Outro grande recurso para aprender mais sobre o OpenSSH é a página de ajuda relevante do Ubuntu.

2. Gerar Chaves

Vamos gerar um conjunto de chaves. Execute os seguintes comandos (adaptados do OpenSSH / Chaves Página de ajuda do Ubuntu).

mkdir ~ / .ssh
chmod 700 ~ / .ssh
ssh-keygen -t rsa

O primeiro comando cria um diretório oculto ‘.ssh’ em sua pasta de início, o segundo comando altera as permissões de acesso da pasta enquanto o terceiro comando realmente gera um conjunto de RSA chaves. Primeiro, você será solicitado a fornecer um local para salvar as chaves (deixe em branco e pressione Enter para salvar no local padrão) e, em segundo lugar, para uma senha longa.

rsa-key-generation-mac

Esta senha criptografa ainda mais a chave privada que está armazenada em seu computador, essencialmente dando a você mais tempo para proteger o servidor SSH se sua chave privada for roubada. Certifique-se de escolher uma senha longa que você consiga lembrar, pois você terá que digitá-la ao tentar usar sua chave.

3. Transfira a chave pública

Em seguida, você precisará transferir a chave pública gerada na etapa anterior para o computador servidor SSH. Se sua máquina cliente também executa Linux, isso pode ser feito facilmente executando o comando abaixo (substituindo e para o nome de usuário e endereço IP em seu servidor SSH).

ssh-copy-id @

Se o seu cliente não suporta o comando ssh-copy-id, você pode usar o comando abaixo. É um pouco mais complicado, mas basicamente atinge os mesmos resultados.

cat ~ / .ssh / id_rsa.pub | ssh @ "mkdir ~ / .ssh; cat >> ~ / .ssh / authorized_keys "

Você será solicitado a inserir a senha de usuário para o servidor SSH. Se os comandos forem executados sem erros, sua chave pública terá sido copiada para o servidor.

4. Desativar autenticação por senha

Observe que seu sistema ainda não está mais seguro do que após a etapa um. Embora pelo menos um cliente esteja configurado para usar autenticação baseada em chave, isso ainda deixa espaço para outros clientes se conectarem com uma senha. Para terminar, desabilitaremos a autenticação de senha por completo. Após esta etapa, computadores que passaram pelo processo acima podem se conectar ao seu servidor SSH.

Para desativar a autenticação de senha, edite o /etc/ssh/sshd_config arquivo em seu editor favorito. Uma das maneiras mais fáceis de editar um arquivo restrito é, novamente, usando o Terminal. (Eu gosto do nano, mas você pode usar o que achar mais confortável.)

sudo nano / etc / ssh / sshd_config

Cerca de 40 linhas da parte inferior do arquivo, você encontrará

#PasswordAuthentication yes

Remova o sinal de número (#) e altere a configuração para ‘não’, conforme abaixo.

PasswordAuthentication não

O arquivo final deve ser semelhante a este:

sshd_config

Salve o arquivo pressionando CTRL + X. Confirme a edição e o nome do arquivo e está quase pronto. Basta reiniciar o servidor SSH para executá-lo com essas novas configurações.

sudo reiniciar ssh

Você também notará que seu cliente deixará de solicitar a senha longa para descriptografar sua chave se a autenticação por senha estiver desativada no servidor. Agora que você tem um servidor SSH seguro, como pretende usá-lo? Como um servidor de arquivos seguro, um shell remoto ou para encaminhar outros serviços por SSH? Deixe-nos saber na seção de comentários abaixo!

Crédito da imagem: Shutterstock

Sou escritor e estudante de ciências da computação na Bélgica. Você sempre pode me fazer um favor com uma boa ideia de artigo, recomendação de livro ou ideia de receita.