Я выполняю ubutu на пи малины 3
У меня есть сценарий, который работает как корень, когда человечность загружается. Чтобы тот сценарий работал правильно, мне нужен пароль. Другими словами, мой сценарий запускается как:
#!/bin/bash
myPassword=(cat /root/foo/psw.txt) # get password from disk
....
... etc
Я защитил свой пароль путем выполнения:
sudo chown root:root /root/foo/psw.txt
sudo chmod 700 /root/foo/psw.txt
Благодаря той команде только пользователь root может считать файл /root/foo/psw.txt
.
Но согласно этому вопросу:
Корневое владение и эксклюзивный доступ подразумевают шифрование?
это означает что, если кто-то, где взять SD-карту и читать из диска, они найдут пароль на простом тексте!
Таким образом, мой вопрос состоит в том, как я могу передать пароль своему сценарию надежно так, чтобы, если кто-то, где читать из SD-карты, они не найдут пароль?
От чтения и исследования в Интернете все говорят для не хранения пароля.
Таким образом, решение состоит в том, чтобы загрузить пароль? Если я загружаю пароль, который означает, что кто-то еще может загрузить пароль. Позволяет говорят, что я загружаю пароль, и он шифруется. Я должен буду сохранить другой пароль для нешифрования того файла, и меня оставят с другим паролем.
У меня есть сервер A
и мое пи малины B
. У людей есть доступ к B
но не к A
. Другими словами, сервер A
находится на облаке, тогда как пи малины находится на офисном здании. Это - шаги для решения проблемы:
Генерируйте и закрытый ключ с открытым ключом на сервере A
.
ssh-keygen -t rsa -b 4096
Установите SSH на rapberry пи B
и поместите открытый ключ, сгенерированный в шаг 1 (id_rsa.pub) в
/root/.ssh/authorized_keys
(не, что authorized_keys является файлом НЕ, каталог и он содержит открытый ключ),
Разрешите, чтобы ssh вошли ТОЛЬКО в использование RSA на B
PasswordAuthentication no RSAAuthentication yes AuthorizedKeysFile /root/.ssh/authorized_keys
Теперь A
может получить доступ B
не храня паролей на B
ssh -i </path/to/privateKey> root@raspberryPiIpAddress
Итак, когда B
начальные загрузки это отправит уведомление A
. A
затем упакует безопасное соединение SSH в ящики в B
. A
отправит команды, который должен быть выполнен B
через ssh.