使用 Bash Shell 脚本验证 SSH 身份验证?

使用 Bash Shell 脚本验证 SSH 身份验证?

我需要在几台服务器上测试 SSH 身份验证。假设这些服务器的 IP 地址保存在ip.txt文件中

我已经使用 Pythonparamikonetmikomodule 编写了类似的脚本。

现在的问题是我必须从没有 Python3 或互联网连接的服务器上测试它。

因此,这里不能选择安装第 3 方工具或 Python 模块。

expectsshpass也不可用。

唯一可用的是 bash 脚本。是否可以单独在 Bash 上执行此操作?我如何传递password到 ssh?

答案1

尝试SSH_ASKPASS

人SSH

...

SSH_ASKPASS

如果 ssh 需要密码,如果从终端运行,它将从当前终端读取密码。如果 ssh 没有与之关联的终端,但设置了 DISPLAY 和 SSH_ASKPASS,它将执行 SSH_ASKPASS 指定的程序并打开 X11 窗口来读取密码。当从 .xsession 或相关脚本调用 ssh 时,这特别有用。 (请注意,在某些计算机上,可能需要重定向 /dev/null 中的输入才能使其工作。)

...

$ cat echoPass
echo passwordHere

$ cat sshSession
export SSH_ASKPASS='~/echoPass'
setsid ssh user@server

$./sshSession
user@server:~$ whoami
user
user@server:~$ 

相关内容