首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用netcat的通信协议

使用netcat的通信协议
EN

Stack Overflow用户
提问于 2014-01-15 01:26:48
回答 1查看 692关注 0票数 2

我需要创建一种方式来通信命令,并将文件从主机服务器传输到开发板。

  • 对板的唯一访问是通过主机服务器(有线以太网连接)。
  • 主机服务器和主板都在运行Linux。
  • 我有能力改变板上的Linux环境。
  • 我没有能力更改主机服务器环境。
  • 我不知道哪些用户需要连接到董事会。
  • 主机服务器与主板之间的连接不需要安全。

现在,我正在使用netcat来满足我的需求,但是遇到了可靠性问题--有人能告诉我一些更适合我的需求,或者更高性能的工具吗?

我目前的解决方案:

一个脚本不断地在板上运行:

代码语言:javascript
运行
复制
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

用户访问板的唯一方式是通过服务器上的一个脚本:

代码语言:javascript
运行
复制
# 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或expect,因为我没有对服务器的控制。

帮帮忙,谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-15 01:42:38

您可以在基于主机的身份验证中使用SSH。然后,您将不需要这些脚本,只需正常使用SSH和SCP,而不需要密码或用户密钥。

使用基于主机的身份验证,从预定义的一组计算机(此处将是主机)连接的任何用户都会在目标计算机(这里是主板)上自动进行身份验证。

您需要修改主板上的SSH服务器配置和主机上的SSH客户端配置(您可以不需要根访问)。

下面是一个应该让您开始的教程

注意,如果加密不是强制性的,而且性能有问题,您可以对访问使用相同的基于主机的身份验证方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21127467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档