У меня есть сервер Ubuntu, который запускает определенные сценарии и должен использовать ssh на сервере Windows для выполнения данных. Я разрабатываю с использованием python и использую paramiko для ssh.
В настоящее время ssh-пароль для входа в Windows предоставляется в виде простого текста.
Какие есть хорошие способы сохранить / получить пароль, чтобы, если кто-нибудь прочитает код, он не сможет легко получить пароль?
Лучшая практика - НЕ использовать пароль. Вы всегда должны использовать ключи для аутентификации.
Но вы не можете предотвратить использование пароля или ключа, если они записаны в виде открытого текста в некотором коде. Хотя можно неплохо ограничить использование ключа. В authorized_keys
на сервере вы можете просто указать разрешенную команду для выполнения с помощью ключа, что предотвратит доступ к оболочке любому, кто владеет ключом.
Пример строки в ~/.ssh/authorized_keys
:
no-port-forwarding,no-pty,no-X11-forwarding,command="your_limited_command" ssh-rsa AAAA[...]==
Более подробное описание опций можно найти на странице руководства для sshd
.