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