gpt4 book ai didi

linux - 使用 ssh 执行命令从自动执行用户登录中获取输入

转载 作者:太空宇宙 更新时间:2023-11-04 12:30:52 26 4
gpt4 key购买 nike

我有 Linux 远程机器,它在登录尝试时运行脚本,它将运行脚本,并且需要用户输入。

主要目的是测试登录用户,登录该用户时远程自动脚本响应的密码。

远程机器内部信息:

$ cat/etc/passwd

远程用户:dontcare:dontcare:dontcare:dontcare:/usr/bin/somescript.sh

当用户登录远程用户时,somescript.sh 将运行。

请求用户输入的脚本内容

$ 读取 -p '>' tmp我不想对该脚本做任何更改。

登录示例

login: remoteuser

Password: remoteuserpassword

Quit Configuration (q, quit)

我可以使用 ssh 命令发送用户输入吗?目前我的方法是使用 paramiko ssh,

connection = paramiko.SSHClient() 使用 exec_command

但它仍然未能按正确的顺序发送输入或未能传递给该脚本。

$ echo q 到 paramiko exec connection.exec_command('echo q')

我没有使用 root 身份登录来测试这个远程用户,因为它不要求输入密码

回显 q | su - 远程用户

最佳答案

Is it possible for me to send the user input using ssh command?

不会,除非您更改脚本。 SSH 将您的脚本作为用户 shell 处理(除非您在 sshd_config 中还有一些其他配置),这意味着如果您提供一些参数,它将使用以下参数运行它:

/usr/bin/somescript.sh -c "command"

这与使用 /usr/bin/bash -c "commnad" 在用户 shell 中运行任何其他任意命令的方式相同。在你的情况下它看起来像

/usr/bin/somescript.sh -c "echo q"

但很可能脚本的参数被忽略了。您的脚本等待标准输入上的命令,我相信您也可以在 Paramiko 中提供该输入。

关于linux - 使用 ssh 执行命令从自动执行用户登录中获取输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43336007/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com