SFTP不适用于编码密码

时间:2013-09-05 07:47:37

标签: sftp

我们在项目中使用SFTP通过SSH连接传输文件。这是通过java代码完成的。假设对于像?的字符!我们需要在sftp命令中给出编码值,我们在代码中编码密码并生成命令。但SFTP现在不使用这些编码密码,它直接接受密码。可能是什么问题。请帮忙。

用户名示例:xyz密码:abc!

我们使用URLEncoder来编码用户名和密码。

String username = URLEncoder.encode(username,“UTF-8”); 字符串密码= URLEncoder.encode(密码,“UTF-8”);

编码后我们的代码会生成SFTP命令:sftp:// xyz:abc%21@10.9.10.9/home/documents/xyz.txt

但这不起作用,身份验证失败,密码错误。如果我们手动给出命令sftp:// xyz:abc!@ 10.9.10.9 / home / documents / xyz.txt它可以工作。

如果我们出错了,请告诉我们。

提前致谢。

1 个答案:

答案 0 :(得分:1)

这实际上不是问题。 SFTP是SSH的一个子系统,SSH在客户端连接时创建一个安全通道(类似于SSL的功能,但在第7层):一旦建立了安全和加密连接,您的用户名和密码将被发送到这样的SSH服务器内。连接,因此不需要对它们进行编码或加密它们。

SSH服务器希望按原样接收您的用户名/密码,而不是预处理或编码。并且您可以使用SFTP安全地执行此操作,原因如上所述。所以没有理由担心。