Skip to content

Gerando segunda senha para SSH aleatória.

Olá,

Ontem mostrei para você como deixar seu SSH mais seguro e até mesmo como pedir outra senha no mesmo. Mas me deu uma idéia na cabeça que está senha poderia ser gerada aleatoriamente todos os dias. Então pensei e cheguei a seguinte idéia. Todos os dias, em tal hora, será gerada uma segunda senha nova. Está será enviada para mim por e-mail. Ou seja ao acessar o SSH precisarei colocar a senha do meu usuário, logo em seguida a senha que foi gerada e está em meu e-mail.

Shell-script para gerar senha Aleatoria (.gerarSenha):

caracteres=(a b c d e f g h i j k l m n o p q r s t u v w y x z 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P Q R S T U V X W Y Z)
total=(${#caracteres[*]})
for ((i=1; i<=10; i++)); {
Valor=$((RANDOM%$total))
String="$String${caracteres[$Valor]}"
}
echo $String > .senhaDoDia

Este arquivo criara uma seqüência aleatória de caracteres e salvara ela no arquivo ".senhaDoDia"

Script para pegar a senha do .senhaDoDia (.leitorLinha):

while read linha
do
senhaGerada=$linha
done

Este arquivo lê o conteúdo do arquivo que for passado como "parâmetro"

Arquivo PHP que envia a senha para meu e-mail (sendMail.php):

<?
$s = $_GET['s'];
mail("E-MAIL", "ASSUNTO", "Sua senha de hoje é $s");
?>

Script para enviar senha (.enviarSenha):

source .secure/.leitorLinha < .secure/.senhaDoDia
wget http://www.suapagina.com/sendMail.php?s=$senhaGerada -q
rm -rf sendMail.php?s=$senhaGerada

Este arquivo utiliza o .leitorDeLinha para colocar a .senhaDoDia em $senhaGerada e faz uma requisição ao endereço que tem a função de enviar e-mail. O mais correto era configurar o próprio servidor para enviar o e-mail não dependendo assim de duas máquinas. Eu simplesmente fiz assim, pois não estou com vontade de configurar um servidor de e-mail no momento e para testes resolvi utilizar minha hospedagem.

As mudanças no seu .profile devem ser as seguintes (.profile):

source .secure/.leitorLinha < .secure/.senhaDoDia
echo Digite sua senha de segurança:
read senha
if [ $senha == $senhaGerada ]

Pronto, agora você tem um script que gera uma senha aleatoria, envia para seu e-mail e pede a mesma quando você se logar no seu SSH. Lembrando que você deve colocar o .gerarSenha para ser executado sempre tal dia em tal horário ou uma condição que você preferir. Lembro também que caso está máquina seja a sua caseira, que você utiliza o X e coisas do tipo, talvez possam ocorrer problemas se você se logar em uma tela já do ambiente gráfico pois acredito que ele pedira a senha de segurança. Não testei em um computador com o X, então enquanto isso recomendo está prática apenas para "servidores" ou computadores que terão seu SSH acessado remotamente (não esqueça você vai precisar de internet para pegar a senha em seu e-mail)

Matheus Bratfisch

Arquivos para gerar, enviar, ler segunda senha do ssh.

PS: Desculpe-me se ficou algo confuso, sabe como são essas idéias malucas né? Mas qualquer dúvida entre em contato comigo.

Published inLinuxphpShell Script

Be First to Comment

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.