СШ делает все введенные пароли видны, когда команда в качестве аргумента для команды ssh

Если я запускаю это:

ssh user@server 'mysql -u user -p'

Когда он просит у меня пароль в MySQL, и я начну вводить, пароль будет отображаться на экране. Как я могу предотвратить это? Если я войти в систему через SSH и затем выполнить команду MySQL, все работает отлично.

Комментарии к вопросу (8)
Решение

Если вы предоставляете удаленную команду, чтобы запустить, СШ не'т выделить телетайп, поэтому удаленная команда не в состоянии отключить Эхо. Вы можете заставить SSH обеспечивают телетайп, используя опцию :

ssh -t user@server 'mysql -u user -p'

Эквивалентный параметр (на -O или в файле конфигурации) является RequestTTY. Я'd с осторожностью использовать его в config ведь это может иметь нежелательные последствия для неинтерактивных команд.

Комментарии (3)

Хранить пароль в защищенной файла

Если вы можете доверять <суп>[]</суп> удаленный компьютер'ы безопасности, вы можете хранить пароль в защищенной надлежащим образом параметр файл, как предложено в [конечных пользователей и руководства по безопасности пароля*]1 глава из руководства, без необходимости общаться с помощью SSH или вводить каждый раз.

В частности вы можете добавить строку в раздел [клиент] файл `.мой.CNF файл в вашем домашнем каталоге:

[client]
password=your_pass

Конечно, вы должны сохранить этот файл недоступным никому, кроме самого себя, установив режим доступа к файлу до 400 или 600, например

chmod 600 ~/.my.cnf

Затем вы можете использовать что-то вроде

ssh user@server 'mysql -u user110971 --defaults-file=/home/user110971/mysql-opts'

где user110971` имя пользователя вашего аккаунта.


Заставив СШ выделить псевдо-терминал (СШ-Т)

Эта проблема происходит каждый раз, когда вы посылаете команду через SSHи нужно вставить ввод, потому что по умолчаниюСШ` не выделит псевдо-телетайп.

Вы можете заставить распределения телетайп с возможностью , (даже больше, чем один, если это необходимо):

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

Как вы можете прочитать в этой Debian пост (Jul_11_2008) о судо, это старый вопрос, который любит повторять:

пользователя SSH сервер и quot@; судо лс и" пароль: пароль

и пароль показали вам

решение форс SSH, чтобы выделить псевдо-телетайп, с флагом-t:

СШ -Т пользователь@сервер судо ЛС


Примечание:

*<суп>[]</суп>* если вы можете положиться на если пароль в файле, доступном только вам и корень на работе* клиента. Если это возможно, чтобы перезагрузить удаленный компьютер изменение операционной системы или удаления жесткого диска, компьютер может'т считаться полностью безопасным... но в этом случае сама база данных не будет безопасной.

Комментарии (1)

Вариант крепления на "hidepid" и для срабатывания ФС тоже ценно. Это делает ваш commandlines невидимым в списке процессов для других пользователей. пример в fstab:

proc /proc proc hidepid=1 0 0
Комментарии (0)