Назад | Перейти на главную страницу

Запомните пароль SSH после ввода без ключей SSH

Мне приходится много работать с SSH на разных серверах, где мне не разрешено хранить открытый ключ на удаленном сервере. Поэтому я не могу использовать SSH-ключи и SSH-агент.

Аутентификация осуществляется через LDAP, поэтому пароль всегда один и тот же. Я хочу ввести свой пароль один раз за сеанс, который затем сохраняется где-то и использовать его для всех дальнейших подключений.

Я много искал, и лучший способ найти - сохранить пароль в переменной среды и использовать sshpass, например:

SSHPASS=mypass sshpass -e ssh username@servername

Но мне не нравится идея знать, что мой пароль сохраняется в переменной среды. Есть лучший способ сделать это?

Судя по всему, нет.

Я предполагаю, что вы могли бы обернуть sshpass в скрипт, чтобы избежать пароля в вашем env, но тогда он у вас будет записан в скрипте. В основном, если пароль должен быть вовлеченным, вам, вероятно, просто придется с этим разобраться.

Одна из возможностей может заключаться в использовании сертификатов SSH вместо общих ключей, что обеспечивает большую детализацию и контроль (см. https://www.digitalocean.com/community/tutorials/how-to-create-an-ssh-ca-to-validate-hosts-and-clients-with-ubuntu).

Kerberos также кажется, что он ставит галочки для всех, но Kerberos не обязательно то, к чему люди стремятся, и я сомневаюсь, что он когда-либо будет серьезно рассматриваться. Но это обеспечит в значительной степени именно тот компромисс, который вы ищете (без открытых ключей, но также и возможность входа в систему без пароля во время сеанса).

Промежуточное решение, которое может учитывать ваши потребности и проблемы / политики оператора сервера, может быть чем-то вроде Телепорт, который обеспечивает промежуточный узел и довольно надежный контроль доступа.

tl; dr: Похоже, вам, возможно, придется укусить пулю, если вы не хотите раскрывать свой пароль, и лучше всего попытаться предложить решение, которое учитывает все опасения администраторов по поводу pubkey.