Если я запускаю это:
ssh user@server 'mysql -u user -p'
Когда он просит у меня пароль в MySQL, и я начну вводить, пароль будет отображаться на экране. Как я могу предотвратить это? Если я войти в систему через SSH
и затем выполнить команду MySQL, все работает отлично.
Если вы предоставляете удаленную команду, чтобы запустить, СШ не'т выделить телетайп, поэтому удаленная команда не в состоянии отключить Эхо. Вы можете заставить SSH обеспечивают телетайп, используя опцию -Т
:
ssh -t user@server 'mysql -u user -p'
Эквивалентный параметр (на -O
или в файле конфигурации) является RequestTTY
. Я'd с осторожностью использовать его в config ведь это может иметь нежелательные последствия для неинтерактивных команд.
Если вы можете доверять <суп>[]</суп> удаленный компьютер'ы безопасности, вы можете хранить пароль в защищенной надлежащим образом параметр файл, как предложено в [конечных пользователей и руководства по безопасности пароля*]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:
СШ -Т пользователь@сервер судо ЛС
*<суп>[]</суп>* если вы можете положиться на если пароль в файле, доступном только вам и корень на работе* клиента. Если это возможно, чтобы перезагрузить удаленный компьютер изменение операционной системы или удаления жесткого диска, компьютер может'т считаться полностью безопасным... но в этом случае сама база данных не будет безопасной.