8
假设Mysql -dbs和一个有不良习惯的管理员忘记密码(或者偏执狂想要更多的创造性验证,而不仅仅是密码)。是否有可能通过Ssh代理存储私钥的方式访问Mysql -root shell,然后我可以通过登录"mysql -u root"
(无需输入密码或私钥和密码的组合)?MySQL root用SSH登录私钥?
假设Mysql -dbs和一个有不良习惯的管理员忘记密码(或者偏执狂想要更多的创造性验证,而不仅仅是密码)。是否有可能通过Ssh代理存储私钥的方式访问Mysql -root shell,然后我可以通过登录"mysql -u root"
(无需输入密码或私钥和密码的组合)?MySQL root用SSH登录私钥?
您当然可以使用普通的SSH密钥身份验证登录到您的shell帐户,然后在您的密码中使用~/.my.cnf
文件。这将在mysql
命令行客户端的默认情况下使用。
它的内容应该是:
[client]
user=the_user_name
password=the_password
要注意的是谁可以读取这个文件就可以使用这些凭据。保护它,以便只有拥有者才能阅读它(并且如果远离键盘锁定终端)。
如果要直接进行基于密钥的身份验证,还可以使用SSL client-certificate authentication。您可以创建自己的小型CA,并使用这些客户端证书颁发自己的证书。如果您需要直接远程访问,许多工具都支持此功能。
+1。我自己写了这个答案的一半。 –
..精确地说,谢谢!除了他们之外,我还有一些想法,例如使用gpg设置ssh-fs,必须仔细考虑如何保护文件(我在共享系统上) - 可能使用多种身份验证方法,因此如果丢失密码并不重要,想法?或许现在正在进行调查。 – hhh
这不一定要用ssh-fs。如果在实际机器上运行(并且仅以非加密形式),该文件将被'mysql'客户端使用。 (你当然可以用ssh-fs挂载远程主目录,然后用你本地的'mysql'客户端指定这个配置文件,但是这看起来很复杂)。如果需要,请将root文件中的mysql root密码保存在root帐户中。对于远程访问,客户端证书可能是更好的选择(尽管它在管理方面涉及更多)。 – Bruno