|
[29/08]
:. Resumo do dia [29/08] :. Google revela loja online de aplicativos para Android [29/08] :. LyX, editor de textos para trabalhos acadêmicos ou especiais [29/08] :. Intel revela novo ultraportátil para países pobres [29/08] :. Debian anuncia LiveCDs oficiais [29/08] :. AMD: plataforma AM3 estreará em março de 2009 [29/08] :. Toshiba exibe tecnologia de 'digitalização em 3D' [28/08] :. Resumo do dia [28/08] :. Processadores AMD de 45 nm serão lançados em janeiro de 2009 [28/08] :. Nvidia SLI funcionará nativamente com chipsets Intel X58 [28/08] :. Microsoft atualiza WGA: agora mais severo com Windows pirata [28/08] :. Mozilla desenvolve plugin para Firefox trabalhar com mashups [28/08] :. Dell adiciona PCs e notebooks baratos à linha Vostro [27/08] :. Publicado Internet Explorer 8 beta 2 [27/08] :. Resumo do dia :. Mais noticias » |
Se você abre conexões SSH com frequência, sempre com as mesmas máquinas, já deve estar cansado de ter que ficar digitando seu password ou sua passphrase a cada nova conexão. A boa notícia é que existem não apenas uma, mas duas formas diferentes de automatizar o login no SSH, sem com isso abrir mão da segurança.
Para isso, deixaremos de utilizar senhas de acesso e passaremos a utilizar um par de chaves. Nesse sistema, a chave pública é instalada nos servidores que serão acessados e a chave privada (que nunca sai da sua máquina) é protegida por uma passphrase, sem a qual a chave se torna inútil. Para gerar o par de chaves, use (no cliente) o comando: $ ssh-keygen -t rsa
Ele deve ser executado usando seu login de usuário (o mesmo que você usa para acessar os servidores remotos), não como root: Generating public/private rsa key pair.
Enter file in which to save the key (/home/morimoto/.ssh/id_rsa): Created directory '/home/morimoto/.ssh'. Enter passphrase (empty for no passphrase): ******** Enter same passphrase again: ******** Your identification has been saved in /home/morimoto/.ssh/id_rsa. Your public key has been saved in /home/morimoto/.ssh/id_rsa.pub. The key fingerprint is: ff:28:26:f6:87:67:9f:4c:9a:c8:0a:3b:21:81:88:b4 morimoto@athenas A passphrase pode ser desde uma senha "normal", com de 8 ou 12 caracteres, até uma frase complexa, sem limite de tamanho. O importante é que não seja algo fácil de adivinhar. A passphrase é, na verdade, um componente da chave de encriptação; sem ela é impossível usar a chave. O comando gerará os arquivos ".ssh/id_rsa" e ".ssh/id_rsa.pub" dentro do seu diretório home, que são, respectivamente, sua chave privada e sua chave pública. O ".ssh/id_rsa" é um arquivo secreto, que deve usar obrigatoriamente o modo de acesso "600" (que você define usando o chmod), para evitar que outros usuários da máquina possam lê-lo. Muitos servidores recusam a conexão caso os arquivos estejam com as permissões abertas. Depois de gerar seu par de chaves, falta o comando final, que instala a chave pública no servidor, permitindo que ela seja usada para autenticação: $ ssh-copy-id -i ~/.ssh/id_rsa.pub login@servidor
Como o nome sugere, o comando "ssh-copy-id" copia sua chave pública, instalando-a no servidor. Ao usá-lo, substitua o "login" pelo seu login de usuário e o "servidor" pelo endereço IP ou o domínio do servidor. Ao ser executado, ele abrirá uma conexão via SFTP (ainda utilizando seu login e senha de acesso), que é usada para instalar a chave pública (o arquivo ".ssh/id_rsa.pub", dentro do seu home) no diretório correspondente do servidor. Naturalmente, para que a transferência funcione, é necessário que o SFTP esteja ativo na configuração do servidor. A partir daí, ao invés de pedir sua senha, o servidor envia um "desafio" encriptado usando a chave pública. Para respondê-lo, o cliente SSH na sua máquina precisa usar a chave privada, que por sua vez precisa ser destravada usando a passphrase. Mesmo que alguém consiga roubar sua chave privada, não conseguirá conectar sem saber a passphrase e vice-versa. Com a chave instalada, chegamos ao tema principal da dica, que é como automatizar os logins, fazendo com que você não precise mais digitar a passphrase a cada conexão. A primeira opção, menos segura, é simplesmente deixar a passphrase em branco na hora de gerar as chaves, o que faz com que o login passe a ser automático. Isso torna as coisas muito práticas, pois você pode escrever até mesmo scripts para copiar arquivos via SFTP, sem precisar se preocupar com senhas, mas não é necessariamente uma boa idéia, pois alguém que consiga copiar sua chave privada poderia ganhar acesso irrestrito a seu servidor. Isso não é algo tão corriqueiro quanto pode parecer, pois a chave privada nunca sai do seu micro. Para roubar sua chave privada, seria necessário que alguém efetivamente invadisse o sistema, ou tivesse acesso físico ao seu micro (para dar boot com o live-CD e copiar o arquivo para um pendrive), mas, de qualquer forma, não é bom dar sopa para o azar. Chegamos então à segunda opção, que consiste em usar o ssh-agent para salvar as passphrases na memória, sem com isso abrir mão da segurança. Ele funciona como uma espécie de "cache", onde você digita a passphrase apenas uma vez, depois de inicializar o sistema, e ela fica gravada na memória até que a sessão seja encerrada. A segurança não é prejudicada, pois a passphrase não é salva em lugar algum; fica apenas armazenada (de forma encriptada) em uma área protegida de memória, acessível apenas ao ssh-agent. Ao desligar o micro, tudo é perdido. Para usar o ssh-agent, abra um terminal e use os comandos: $ ssh-agent
$ ssh-add Ele vai solicitar sua passphrase, como neste exemplo: Enter passphrase for /home/morimoto/.ssh/id_rsa: ********
Identity added: /home/morimoto/.ssh/id_rsa (/home/morimoto/.ssh/id_rsa) A partir daí ela fica carregada na memória e você não precisa mais se preocupar até o próximo reboot. Uma forma prática de fazer com que os dois comandos sejam executados automaticamente durante a abertura do sistema, é adicioná-los em um atalho dentro da pasta ".kde/Autostart", dentro do seu diretório home, de forma que eles sejam executados automaticamente e você tenha apenas o trabalho de digitar a chave e dar Enter. Note que os comandos não devem ser adicionados no "/etc/rc.local" ou outro arquivo de inicialização, pois precisamos que os comandos sejam executados dentro do seu login de usuário e não pelo root. Concluindo, depois de gerar a chave e conseguir se conectar através dela, você pode desativar a possibilidade de fazer logins normais, usando senha. Nesse caso, apenas você, que possui a chave gerada, conseguirá se conectar ao servidor. Outras pessoas, mesmo que descubram a senha de alguma das contas, não terão como se conectar e nem como instalar uma nova chave para fazê-lo, a menos que tenham acesso físico ao servidor, a fim de copiar a chave manualmente. Isso significa que, mesmo alguém com a senha de root do seu servidor em mãos não conseguirá fazer nada remotamente (o sonho de todo administrador ;). Isso pode ser usado para incrementar a segurança. Para isso, mude as opções "PasswordAuthentication" e "UsePAM" para "no" no arquivo "/etc/ssh/sshd_config" do servidor: PasswordAuthentication no UsePAM no A opção "PasswordAutentication no" permite desativar o uso das senhas, como esperado, enquanto a "UsePAM no" reforça a configuração, desativando qualquer outra forma de autenticação com exceção das chaves. Para que as alterações entrem em vigor, reinicie o servidor SSH: # /etc/init.d/ssh restart
ou: # service sshd restart
» Gostou do texto? Veja nossos livros impressos
|