在执行su命令时,如何隐藏密码



这是我第一次在使用su命令时发生这种情况,它实际上在终端上显示密码,而不是保持隐藏。下面是我的代码片段:

sshpass -p "password" ssh -q username@74.11.11.11 "su -lc 'mkdir temp/'"

代码解释:我正在访问远程服务器并尝试在该服务器上以root身份创建一个文件夹。为此,我必须使用su命令,它会提示我输入密码。当我输入密码时,它会显示出来,不会一直隐藏。我该如何解决这个问题?

解决方案是分配一个伪TTY(在ssh上使用-t选项):

sshpass -p "password" ssh -t -q username@74.11.11.11 "su -lc 'mkdir temp/'"

如果没有这个,在这个上下文中没有"终端",su无法禁用密码的回显。

就像我在这里回复你一样。

可以把它"隐藏"起来从命令行:

编辑你的/etc/profile 并粘贴在那里:

export SSHPASS='my_pass_here'

sshpass命令使用-e参数

$ sshpass -e ssh usernmane@hosting.example 'ls -ll' 

另一个选项是将密码保存在另一个文件中,并使用-f参数:

$ sshpass -f password_filename ssh usernmane@hosting.example 'ls -la' 

但最好的解决方案是遵循@Hristo Mohamed的建议:

一般情况下请避免使用带有密码的sshpass。

你可以很容易地设置一个生成ssh密钥来完成这项工作,然后删除它。

相关内容

  • 没有找到相关文章

最新更新