Como executar o script na inicialização que requer uma senha?

1

Estou usando o ubutu em um raspbery pi 3

Eu tenho um script que roda como root quando o ubuntu inicializa. Para que esse script seja executado corretamente, eu preciso de uma senha. Em outras palavras, meu script começa assim:

#!/bin/bash

myPassword=(cat /root/foo/psw.txt)  # get password from disk
....
... etc

Protegi minha senha executando:

sudo chown root:root /root/foo/psw.txt
sudo chmod 700 /root/foo/psw.txt

Graças a esse comando, apenas o usuário root pode ler o arquivo /root/foo/psw.txt .

Mas de acordo com essa pergunta:

A propriedade do root e o acesso exclusivo implicam criptografia?

isso significa que se alguém pegar o cartão SD e ler o disco, ele encontrará a senha em texto simples!

Então, minha pergunta é: como posso passar a senha para o meu script de forma segura, para que alguém que leia o cartão SD não encontre a senha?

De ler e pesquisar na internet, todos dizem para não armazenar a senha.

Então, a solução para baixar a senha? Se eu baixar a senha, isso significa que outra pessoa pode baixar a senha. Digamos que eu baixe a senha e ela seja criptografada. Eu terei que armazenar outra senha para descriptografar esse arquivo e ficarei com outra senha.

    
por Tono Nam 30.03.2018 / 06:07

1 resposta

0

Eu tenho um servidor A e meu framboesa pi B . As pessoas têm acesso a B , mas não a A . Em outras palavras, o servidor A está na nuvem, enquanto o pi de framboesa está em um prédio de escritórios. Estas são as etapas para resolver o problema:

  1. Gere uma chave pública e privada no servidor A .

    ssh-keygen -t rsa -b 4096

  2. Instale o SSH no rapberry pi B e coloque a chave pública gerada no passo 1 (id_rsa.pub) em

    /root/.ssh/authorized_keys

    (não que authorized_keys seja um arquivo NÃO é um diretório e contém a chave pública)

  3. Permitir login do ssh APENAS usando o RSA em B

    PasswordAuthentication no RSAAuthentication yes AuthorizedKeysFile /root/.ssh/authorized_keys

  4. Agora, A pode acessar B sem armazenar senhas em B

    ssh -i </path/to/privateKey> root@raspberryPiIpAddress

  5. Portanto, quando B inicializar, enviará uma notificação para A . A criará uma conexão ssh segura em B . A enviará os comandos que precisam ser executados por B por meio do ssh.

por Tono Nam 30.03.2018 / 19:56