gpt4 book ai didi

linux - 如何在远程计算机上进行 ssh 时在 lua 脚本中自动提供密码

转载 作者:太空宇宙 更新时间:2023-11-04 05:14:10 24 4
gpt4 key购买 nike

在不使用 sshpass 的情况下,sshkeys 有没有办法通过 ssh 到远程计算机并仅通过 lua 脚本提供密码。并且还可以在 ssh 之后在远程计算机的后台运行 shell 命令。执行 os.execute('ssh user@192.168.14.81') 后如何自动获取密码

最佳答案

该函数不应该这样使用。实际上, os.execute 和 io.popen 根本不打算使用。当您需要做一些不应该以这种方式工作但您确实需要这样做的事情时,它们是准系统命令。

它们都基于标准 C 库,并且没有提供太多功能。出于安全原因,ssh 以某种不太标准的方式处理与用户的交互。一般来说,您必须使用非标准库,例如 luaposix,或附加一些 C++ 库以进行系统交互。

与 ssh 相关,有 python 库parallel-ssh。旧版本通过丑陋的输出解析来完成他们的工作,新版本似乎重新实现了整个协议(protocol)。如果有足够的愿望,就有可能利用那些带有 lua 的东西。或者只使用 python 来完成任务。

对于 lua 与进程交互的特殊性,您可以尝试此代码(将其放入文件中,因为如果您尝试将其粘贴到终端中,它会阻塞 stdin)

f=io.popen([[
echo "this will show only on f:read";
echo "now here's your line";
read var; echo $var
]]);
print('this will print before bash command finishes, now type something');
f:write('This will be ignored completely')
print(f:read('*a'));
print('This will print after the bash command');
f:close()

关于linux - 如何在远程计算机上进行 ssh 时在 lua 脚本中自动提供密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51571204/

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