为什么通过 ssh 运行时 ssh-add 会显示我输入的内容?

为什么通过 ssh 运行时 ssh-add 会显示我输入的内容?

当我做

$ ssh -A ssh.example.com ssh-add .ssh/id_rsa

当我输入密码时它会显示我所输入的内容。

Python 对于正在发生的事情更有帮助:

$ ssh ssh.example.com "python -c 'from getpass import getpass; print(getpass())'"
/usr/lib64/python3.6/getpass.py:91: GetPassWarning: Can not control
echo on the terminal.   passwd = fallback_getpass(prompt, stream)
Warning: Password input may be echoed.

有没有解决的办法?

我可以stty -echo在执行 ssh 命令之前执行此操作,但我会在没有看到它的情况下输入该命令。

答案1

您必须使用-t模拟终端,这样ssh-add才能执行一些tty设置来防止显示您的密码。

因此就你的情况而言:

ssh -A -t ssh.example.com ssh-add .ssh/id_rsa

相关内容