use*_*971 47 linux ssh terminal passwords ubuntu
如果我运行这个:
ssh user@server 'mysql -u user -p'
Run Code Online (Sandbox Code Playgroud)
当它询问我输入 MySQL 密码时,我开始输入时,密码在屏幕上可见。我怎样才能防止这种情况?如果我通过登录ssh然后执行 MySQL 命令,一切正常。
Tob*_*ght 106
如果您提供要运行的远程命令,SSH 不会分配 tty,因此远程命令无法禁用回显。您可以使用以下-t选项强制 SSH 提供 tty :
ssh -t user@server 'mysql -u user -p'
Run Code Online (Sandbox Code Playgroud)
等效选项(用于-o或用于配置文件)是RequestTTY. 我警告不要在配置中使用它,因为它可能会对非交互式命令产生不良影响。
Has*_*tur 29
如果您可以信任[*]远程计算机的安全性,您可以将密码存储在一个适当保护的选项文件中,如手册的密码安全最终用户指南一章中所建议的那样,而无需通过通信ssh或键入每个时间。
具体来说,您可以.my.cnf在主目录中文件的 [client] 部分添加一行:
[client]
password=your_pass
Run Code Online (Sandbox Code Playgroud)
当然,您必须通过将文件访问模式设置为 400 或 600 来防止除您之外的任何人访问该文件,例如
chmod 600 ~/.my.cnf
Run Code Online (Sandbox Code Playgroud)
然后你可以使用类似的东西
ssh user@server 'mysql -u user110971 --defaults-file=/home/user110971/mysql-opts'
Run Code Online (Sandbox Code Playgroud)
user110971您帐户的用户名在哪里。
ssh -t)每次通过发送命令ssh并且需要插入输入时都会发生此问题,因为默认情况下ssh不会分配伪 tty。
您可以使用选项强制 tty 分配-t,(如果需要甚至不止一个):
-t强制伪 tty 分配。 这可用于在远程机器上执行任意基于屏幕的程序,这非常有用,例如在实现菜单服务时。 多个
-t选项强制 tty 分配,即使 ssh 没有本地 tty。
正如你在读这Debian的职位(Jul_11_2008)约sudo,这是一个老问题,爱复发:
Run Code Online (Sandbox Code Playgroud)ssh user@server "sudo ls" password: password密码显示给你
解决方案是强制 ssh 分配一个带有 -t 标志的伪 tty:
Run Code Online (Sandbox Code Playgroud)ssh -t user@server sudo ls
[*]如果您可以依靠将密码保留在只有您和工作客户端上的 root 才能访问的文件中。
如果可以重新启动远程计算机更改操作系统或移除硬盘驱动器,则不能认为计算机是完全安全的……但在这种情况下,数据库本身将不安全。
| 归档时间: |
|
| 查看次数: |
10443 次 |
| 最近记录: |