Хранение пароля в защищенном файле опций
Если вы можете доверять [*] безопасности удаленного компьютера, вы можете сохранить пароль в надлежащим образом защищенном файле опций, как это предлагается в главе « Руководства для конечных пользователей по безопасности паролей» , без необходимости взаимодействия ssh
или ввода каждого из них. время.
В частности, вы можете добавить строку в разделе [client] файла .my.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 выделить псевдо tty ( ssh -t
)
Эта проблема возникает каждый раз, когда вы отправляете команду, ssh
и вам нужно вставить ввод, потому что по умолчанию ssh
не выделяется псевдо-tty.
Вы можете принудительно назначить tty с помощью опции -t
(даже больше, чем один):
-t
Сила псевдо-тты выделения. Это может использоваться для выполнения произвольных программ на экране на удаленной машине, что может быть очень полезно, например, при реализации сервисов меню. Несколько -t
опций принудительно распределяют tty, даже если ssh не имеет локального tty.
Как вы можете прочитать в этом посте Debian (Jul_11_2008) о том sudo
, что это старая проблема, которая любит повторяться:
ssh user@server "sudo ls"
password: password
И пароль показан вам
Решение состоит в том, чтобы заставить ssh выделить псевдо-tty с флагом -t:
ssh -t user@server sudo ls
Примечание:
[*] Если вы можете оставить пароль в файле, доступном только вам, и root на работающем клиенте.
Если есть возможность перезагрузить удаленный компьютер, сменив ОС, или удалить жесткий диск, компьютер нельзя считать полностью безопасным ... но в этом случае сама база данных не будет защищена.