Posts Tagged “shell”

E seguro, bem mais seguro que a sua senha de n caracteres. Hoje veremos como logar num servidor remoto via SSH sem a utilização de senhas, utilizando o conceito de chaves privadas e públicas.

No repositório de Ubuntu do Circo Digital que mantenho, tenho de constantemente fazer uso de transferências de arquivos para o servidor. Naturalmente, não uso FTP pela insegurança, prefiro fazer uso de SSH. O problema é que os pacotes são muitos e, como estou amarrado à uma conexão lenta (300 kbps de upstream), tenho de abrir uma conexão para primeiro enviar o pacote e depois os metadados. Naturalmente, seria um saco ficar digitando a senha do usuário do servidor toda hora, por isso procurei uma solução para automatizar o processo.

A idéia de não utilizar senhas para conectar num servidor parece insegura, e realmente o é se terceiros tiverem acesso ao seu computador. Como a minha paranóia não abrange espionagem industrial e se meu laptop for roubado o máximo que irá acontecer será o meliante ligar e dizer “que porra de Uíndoux estranho é esse?”, estou tranqüilo. A idéia é usar chaves encriptadas. Você gera um par de chaves (chave pública e chave privada), guarda a chave privada no seu computador e envia a chave pública para os computadores que você queira entrar sem utilizar senha. É o mesmo processo da criptografia de correio eletrônico.

Pois bem, vamos ao procedimento.

  1. Entre com o seguinte comando no console, para gerar o par de chaves: ssh-keygen -b 1024 -t rsa
  2. O ssh-keygen irá perguntar aonde você quer guardar sua chave, deixe o padrão $HOME/.ssh/id_rsa apertando ENTER.
  3. Agora ele lhe pergunta por uma senha. A autenticação das chaves pública e privada pode ser usada sem senha, o que é o nosso caso, ou utilizando-se de uma senha, para reforçar ainda mais a segurança. Ficamos no primeiro caso, e pressionamos ENTER para deixar a senha em branco e ENTER novamente para confirmar.
  4. Agora que a chave foi gerada, precisamos enviá-la para o servidor. Fazemos isso com o comando scp ~/.ssh/id_rsa.pub usuario@servidor:~/.ssh
  5. Chave enviada, temos agora de dizer para o servidor SSH que ela é uma chave de autenticação. Logamos no servidor (ssh usuario@servidor), digitamos a senha pela última vez :) e configuramos: cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys && rm ~/.ssh/id_rsa.pub
  6. Finito! Agora você poderá logar no seu servidor com segurança e sem precisar digitar a senha a todo momento. Para uma maior segurança, você pode fazer uma cópia de segurança de todos os arquivos do ~/.ssh da sua máquina e desativar o login “normal” de seu usuário no servidor, assim mesmo que alguém descubra a senha do seu usuário, só poderá logar caso tenha acesso físico à máquina ou às suas chaves privadas.

Baseado no artigo do Dicas-L.

Tags: , , , ,

Comments Nenhum comentário »

Magnatune LogoDesde que eu uso Ubuntu regularmente (o que irá fazer 3 anos agora em abril) uso como player de áudio o excelente Amarok. Já a algum tempo, ele é integrado a uma loja de músicas chamada Magnatune.

A Magnatune é uma loja de músicas que tem como lema We are not evil. Lá, você pode ouvir as músicas em alta qualidade antes de comprar os discos, que podem ser enviados pelo correio ou baixados diretamente em FLAC, OGG, MP3, WAV, AAC ou WMA, tudo sem DRM, pagando o preço que bem entender (a partir de $5), e ainda, segundo eles, pagando uma proporção justa aos artistas. Pois bem. Ocorre que eu geralmente não ouço as músicas no meu computador, e sim no meu N95. Daí precisava de uma forma de baixar as músicas rapidamente, para poder ouvi-las por aí.

Além de serem disponibilizadas comercialmente, as músicas são também paralelamente compartilhadas em MP3 128kbps com uma mensagem no final convidando o ouvinte a visitar o site sob uma disponibilização Creative Commons.

Cada página de álbum tem, no fim, um link para uma playlist XSPF como alternativa ao player de flash.

Para baixar todas as músicas de um determinado álbum, de uma vez, só fazer assim num terminal:

wget -q -O - link da playlist | sed -e ‘/annotation/d’ -e ‘/playlist/d’ -e ‘/track/d’ -e ‘/encoding/d’ -e ’s/<\/*location>//g’ | xargs wget -c

Por exemplo:

wget -q -O - http://magnatune.com/artists/albums/beatunder-intro/hifi.xspf | sed -e '/annotation/d' -e '/playlist/d' -e '/track/d' -e '/encoding/d' -e 's/<\/*location>//g' | xargs wget -c

Aproveite :)
Edit.: Adicionei um “-c” no wget, para resumir automaticamente caso já tenha baixado alguma parte do arquivo e tenha parado no meio por qualquer motivo.

Edit 2: Notei que músicas com uma aspa simples (como “don’t”) no nome do arquivo não são baixadas. Alguma idéia de como resolver?

P.S.: Mesmo que o post nerd te assuste, reserve um tempinho para passar lá e conferir as músicas mais populares, tem muita coisa interessante.

Fonte: Manifest Density

Tags: , , , ,

Comments Nenhum comentário »