LinuxForum.Fans
Тема

Скрипт с зашифрованным паролем

Автор: deleted_user 7 сообщений 3767 просмотров
#222636

Добрый день . пишу скрипт который будет выполнять некое действие на удаленном ПК. К примеру через ssh. Но что бы войти на другой Пк как известно нужно ввести юзера и пароль. Так вот как можно зашифровать пароль в скрипте и передать его ?

#222638
bearwoolfs написал:
ак вот как можно зашифровать пароль в скрипте и передать его ?

...использовать аутентификацию по ключам, т.е. беспарольный вход. Так будет разумнее, IMHO.

#222644

Спасибо ) Для решение этой задачки как то я не додумался до ключа ))) . НО в будующем прийдеться передавать пароли и для других программ. Нужен скрипт(

#222645
bearwoolfs написал:
Добрый день . пишу скрипт который будет выполнять некое действие на удаленном ПК. К примеру через ssh. Но что бы войти на другой Пк как известно нужно ввести юзера и пароль. Так вот как можно зашифровать пароль в скрипте и передать его ?

не изобретайте велосипед. Есть такая программа, которая генерирует одноразовый криптостойкий пароль, и безопасно отправляет его на сервер. При этом на сервере другая программа проверяет валидность этого одноразового зашифрованного пароля, и далее использует его для шифровки/расшифровки данных. Данная криптосхема называется "шифрование парой закрытого, и открытого ключа", реализовано в частности в SSH. На клиенте должен быть секретный и публичный ключ, а на сервере только публичный.

bearwoolfs написал:
Спасибо ) Для решение этой задачки как то я не додумался до ключа ))) . НО в будующем прийдеться передавать пароли и для других программ. Нужен скрипт(

не нужен. Безопасная передача пароля УЖЕ реализована в SSH протоколе.

#222648
bearwoolfs написал:
НО в будующем прийдеться передавать пароли и для других программ. Нужен скрипт(
drBatty написал:
Безопасная передача пароля УЖЕ реализована в SSH протоколе.

Возможно, ТС имеет ввиду сам способ передачи каких-либо текстовых данных, выступающих в роли пароля.
Так в качестве примера приведу возможность монтирования шифрованной файловой системы в пространстве пользователя encfs поверх ssh:
1. Создаём (разумеется, беспарольно, с помощью ключей) sftp-доступ

text

root@localhost:~# sshfs remoteuser@somehost:/some/path /mnt/sshfsmount/

2. Поверх этого соединения подключаем encfs.

text

user@localhost:~$ echo "SuperPassword" | encfs -S ~/mnt/sshfsmount/ ~/mnt/encfsmount/

P.S. На самом деле это чуть сложнее выглядит, но алгоритм, думаю, понятен.

#222651
Lupo Alberto написал:
Возможно, ТС имеет ввиду сам способ передачи каких-либо текстовых данных, выступающих в роли пароля.

проще всего ИМХО файлик послать командой scp.

Lupo Alberto написал:
1. Создаём (разумеется, беспарольно, с помощью ключей) sftp-доступ

root@localhost:~# sshfs remoteuser@somehost:/some/path /mnt/sshfsmount/

вы всё усложняете. Я делаю так:
[console]$ sshfs aranei: aranei[/console]
заметьте - от простого юзера, а НЕ рута. Работать от рута - моветон. Не мне вас учить...

ЗЫЖ перед этой командой я проделал следующее:

1. создал пару ключей на клиенте. ВСЁ ДЕЛАЕМ ОТ ПОЛЬЗОВАТЕЛЯ! на сервере - тоже.
[console]$ man ssh-keygen[/console]
2. публичный ключ перенёс на сервер.
если сервер в зоне досягаемости - то можно перенести на флешке и т.д. Иначе
[console]$ man ssh-copy-id[/console]
файлик key_name.pub надо перенести на сервер в authorized_keys, точнее - добавить к этому файлу. Все эти файлы должны лежать в каталогах ~/.ssh, причём права на каталог 0700, а на файлы 0600. Владелец - юзер.
3. теперь редактируем файл .ssh/config на клиенте.

text
Host имя_хоста
HostName IP_хоста_или_доменное_имя_если_есть
Compression yes
User имя_юзера
Port 66666 # порт надо выбрать. Например написав $ echo $RANDOM
IdentityFile ~/.ssh/key_name # это секретный ключ

4. на сервере надо сменить номер порта, и рестартануть демон ssh.
потом проверить, и если всё хорошо, запретить логин по паролю. (вот тут понадобятся ненадолго права рута)

#222654
drBatty написал:
заметьте - от простого юзера, а НЕ рута. Работать от рута - моветон. Не мне вас учить...

Спасибо за замечание. Это только пример. Везде, где у меня есть ssh-доступ, вход от root'а запрещён.

drBatty написал:
sshfs aranei: aranei

Повторюсь, это был пример, да и так понять проще, что именно я предлагал сделать.

Войдите или зарегистрируйтесь, чтобы ответить.