2
我需要创建一种方法来传递命令并将文件从主机服务器传输到开发板。使用netcat的通信协议
- 唯一通过主机服务器(有线以太网连接)访问主板。
- 主机服务器和主板都在运行Linux。
- 我有能力改变电路板上的Linux环境。
- 我没有能力改变主机服务器环境。
- 我不知道哪些用户需要连接到电路板。
- 主机服务器和主板之间的连接不需要安全。
现在,我正在使用netcat满足我的需求,但遇到了可靠性问题 - 有人可以指点我一些更适合我的需求和更高性能的工具吗?
我目前的解决方案:
的脚本不断在板上运行:
while [ 1 ] ; do
# Start a netcat server, awaiting a file.
nc -l -p 1357 > file.bin
# Acknowledge receipt of file.
status=fail
while [ ${status} -ne 0 ] ; do
status=$(echo 0 | nc <host_ip> 2468 2>&1)
done
# Wait for a command.
nc -l -p 1357 -e /bin/sh
# Acknowledge receipt of command.
status=fail
while [ ${status} -ne 0 ] ; do
status=$(echo 0 | nc <host ip> 2468 2>&1)
done
done
用户都可以访问该板的唯一方法是通过服务器上的脚本:
# Send over a file.
cat some_file.bin | /bin/nc -w 10
# Wait for acknowledge.
if [ $(nc -l 2468) -ne 0 ] ; then
exit # Fail
fi
# Send a command.
echo "<some_command>" | nc -w 10 <board ip> 1357
# Wait for acknowledge.
if [ $(nc -l 2468) -ne 0 ] ; then
exit # Fail
fi
我使用netcat的,现在的原因是,我不知道任何方式使用SSH或SCP没有密码考虑到:
- 我无法为每个人都需要访问到电路板上,尤其是因为我不知道谁将会使用它SSH密钥。
- 我无法安装sshpass或期望,因为我没有控制服务器。
请帮忙, 谢谢。
没有OPs语句'我没有能力更改主机服务器环境。'排除'修改主机上的SSH客户端配置'?祝你们好运。 – shellter
@shellter如果OP能够在主机上运行'ssh board',他也应该能够运行'ssh -o HostbasedAuthentication board'。 – damienfrancois