![使用 WinSCP 连接 Windows 客户端到 Linux 服务器](https://linux22.com/image/744981/%E4%BD%BF%E7%94%A8%20WinSCP%20%E8%BF%9E%E6%8E%A5%20Windows%20%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%88%B0%20Linux%20%E6%9C%8D%E5%8A%A1%E5%99%A8.png)
我正在尝试了解如何在 Windows 7 PC(是的,这些 PC 将在明年的部分时间内得到支持)与 Linux 服务器之间建立 SFTP 连接。我想我终于明白了 - 但我不知道应该把东西放在哪里以及如何实际连接。
在这些新的 Linux 服务器推出之前,我正在测试实验室中测试所有这些。我已经生成了一对密钥。我已将公钥交给我的测试服务器管理员,他已将其放在/root/.ssh/authorized_keys(这是正确的位置吗?)在 Linux 服务器上。
我已经把我的私钥放在\用户\用户\.ssh\密钥名称.ppk在我的 Windows PC 上。这样对吗?
现在,我正在尝试编写一个测试批处理脚本,该脚本将使用我的连接命令、PUT 和 GET 命令创建一个 .dat 文件,并将由 WinSCP 调用以连接到该服务器并运行这些命令。如果我可以让它工作,我将在几个不同的脚本中使用相同的批处理代码和 WinSCP 调用,这些脚本目前使用 FTP,而不是 SFTP。
我不确定如何连接。我已调用我的 .dat 文件 -
winscp /script=\temp\sftp.dat
但我当前的身份验证方法是使用用户名/密码组合 - 这是.dat 文件的第一行:
open sftp://username:password@servername -hostkey="ssh-ed25519 xxxxxxxxxxxx"
...但用户名/密码验证对我来说不可用。那么我该如何仅使用密钥对进行连接?我需要写一行来代替该行吗?打开 sftp需要连接什么线路?
答案1
最后发现服务器上的密钥位置是正确的,只要我在 WinSCP 中使用 -privatekey 参数,客户端上的密钥位置就不严格 - 我终于明白了 - 这是 sftp.dat 中起作用的行:
open sftp://username@servername -hostkey="ssh-ed25519 xxxxxxxxxxxx" -privatekey=\pathtoprivatekey\key.ppk
建立连接并最终对使用公钥认证的 SFTP 有了更好的了解。