我正在编写一个脚本,用于从 Linux 计算机执行到 Windows (服务器) 的操作sftp
。我希望该脚本运行时无需手动输入,例如输入密码等。
#!/bin/sh
HOST='10.x.x.x'
USER='user'
PASSWD='passwd'
sftp $USER@$HOST
我在用着自由FTP服务作为 Windows 机器上的 SFTP 服务器。从 Linux 端来说,目前我使用的是 Ubuntu,但我的实际需求是为基于 ARM 的机器提供精简版 Linux。
在 Linux 机器上,我使用 生成公钥和私钥ssh-keygen -t rsa
。在 目录下生成两个文件(公钥和私钥)/home/user/.ssh
,即id_rsa
和id_rsa.pub
。
如果是另一台 Linux 机器,我知道我必须将公钥(id_rsa.pub
)附加到authorized_keys
文件中。
我现在不确定,因为我的 SFTP 服务器在 Windows 上。安装 freeFTPd 后我检查了一下C:\Program Files\freeFTPd\
,但没有看到任何类似于.ssh/authorized_keys
Linux 的文件。
FreeFTPd 有生成私钥的选项。所以我生成了一个私钥并将其复制到 Linux 机器 ( .ssh/id_rsa
) 文件中并尝试。但它仍然提示输入密码。
我该如何解决这个问题?
答案1
我不了解 Windows,但你似乎错了:
- 安全FTP并不意味着简单 FTP 协议的安全实现但SSH 文件传输协议所以服务器不需要回答FTP协议,但是SSH!(摘自维基百科:)
SSH 文件传输协议
来自维基百科,自由的百科全书
跳转至:导航、搜索
不要混淆简单文件传输协议
在计算中,SSH 文件传输协议(还安全文件传输协议,安全 FTP, 或者安全FTP) 是一种网络协议,可通过任何可靠的数据流提供文件访问、文件传输和文件管理功能。它由互联网工程任务组 (IETF) 设计,作为安全外壳协议 (SSH) 2.0 版的扩展,以提供安全的文件传输功能...
所以你必须安装一个SSH 服务器在你的窗户上。
看一眼: