Если я запускаю это:
ssh user@server 'mysql -u user -p'
Когда он запрашивает у меня пароль MySQL, и я начинаю печатать, пароль виден на экране. Как я могу предотвратить это? Если я вхожу в систему ssh
и затем выполняю команду MySQL, все работает нормально.
Ответы:
Если вы предоставляете удаленную команду для запуска, SSH не выделяет tty, поэтому удаленная команда не может отключить эхо. Вы можете заставить SSH предоставить tty, используя
-t
опцию:Эквивалентная опция (для
-o
или для конфигурационного файла)RequestTTY
. Я бы предостерег от использования этого в конфигурации, потому что это может иметь нежелательные эффекты для неинтерактивных команд .источник
RequestTTY
вman 5 ssh_config
.Хранение пароля в защищенном файле опций
Если вы можете доверять [*] безопасности удаленного компьютера, вы можете сохранить пароль в надлежащим образом защищенном файле опций, как это предлагается в главе « Руководства для конечных пользователей по безопасности паролей» , без необходимости взаимодействия
ssh
или ввода каждого из них. время.В частности, вы можете добавить строку в разделе [client] файла
.my.cnf
в вашем домашнем каталоге:Конечно, вы должны помешать этому файлу быть доступным для всех, кроме вас самих, установив режим доступа к файлам на 400 или 600 с помощью, например:
Тогда вы можете использовать что-то вроде
где
user110971
имя пользователя вашей учетной записи.Заставить ssh выделить псевдо tty (
ssh -t
)Эта проблема возникает каждый раз, когда вы отправляете команду,
ssh
и вам нужно вставить ввод, потому что по умолчаниюssh
не выделяется псевдо-tty.Вы можете принудительно назначить tty с помощью опции
-t
(даже больше, чем один):Как вы можете прочитать в этом посте Debian (Jul_11_2008) о том
sudo
, что это старая проблема, которая любит повторяться:Примечание:
[*] Если вы можете оставить пароль в файле, доступном только вам, и root на работающем клиенте.
Если есть возможность перезагрузить удаленный компьютер, сменив ОС, или удалить жесткий диск, компьютер нельзя считать полностью безопасным ... но в этом случае сама база данных не будет защищена.
источник
Опция монтирования "hidepid" для proc fs также полезна. Это делает ваши командные строки невидимыми в списке процессов для других пользователей. пример fstab:
источник