我需要创建一种方式来通信命令,并将文件从主机服务器传输到开发板。
现在,我正在使用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:
帮帮忙,谢谢。
发布于 2014-01-15 01:42:38
您可以在基于主机的身份验证中使用SSH。然后,您将不需要这些脚本,只需正常使用SSH和SCP,而不需要密码或用户密钥。
使用基于主机的身份验证,从预定义的一组计算机(此处将是主机)连接的任何用户都会在目标计算机(这里是主板)上自动进行身份验证。
您需要修改主板上的SSH
服务器配置和主机上的SSH
客户端配置(您可以不需要根访问)。
下面是一个应该让您开始的教程。
注意,如果加密不是强制性的,而且性能有问题,您可以对访问使用相同的基于主机的身份验证方案。
https://stackoverflow.com/questions/21127467
复制相似问题