我正在尝试使用esp8266 wifi模块进行sftp连接,但我遇到了问题。首先,我成功地将esp8266连接到我的路由器,然后我使用以下命令尝试建立到sftp服务器的tcp连接
AT+CIPSTART="TCP","demo@test.rebex.net",22但我总是收到来自esp8266的"DNS FAIL“回复。如何使用esp8266 wifi模块建立sftp连接?
发布于 2017-01-18 20:42:26
根据https://github.com/espressif/ESP8266_AT/wiki/CIPSTART的说法,AT+CIPSTART命令的语法是
AT+CIPSTART=type,addr,port 您的"address“参数必须只是主机名。您似乎在那里放置了一个带有用户名(demo@test.rebex.net)的URL。主机名应该是test.rebex.net,对吗?文字主机名demo@test.rebex.net不存在,因此无法进行DNS解析,这解释了该错误。然后在协议运行中处理作为用户demo的身份验证。
但是请注意,SFTP是一个复杂的协议。该CIPSTART命令只是为您打开一个指向该主机名和该端口的原始TCP套接字。具体来说,发出该命令不会为您执行任何高级协议逻辑。它只是一个你可以写和读的套接字。如果您指的是SFTP,那么您需要能够使FTP over SSL协议与所有涉及的密码学一起运行。如果您所说的SFTP指的是Secure File Transfer Protocol (SFTP),那么您需要一个SSH实现(以及更类似的加密原语)。这种类型的计算绝对不适合只发送AT+命令的Arduino,所以我建议直接对ESP8266进行编程。esp-open-rtos有很多做SSL连接的例子,但是还没有实现SSH或SFTP。
https://stackoverflow.com/questions/41717378
复制相似问题