如何使用提供的 SSH 密钥连接到 SFTP?

use*_*648 19 ssh sftp cyberduck ssh-keys

我被重定向到这个 StackExchange,这是我第一次来这里。我在 SSH 密钥方面的经验从我设置将代码推送到 GitHub 的能力开始到结束。

我需要通过 Cyber​​duck 访问 FTP 服务器。我在 SFTP 中,需要“选择...”一个 SSH 私钥。我有发送给我的私钥文本。那么我可以将其复制并粘贴到文件中吗?我不确定如何继续,我找到的每个资源都是生成密钥而不是保存要上传的文件。

感谢指导和资源。

小智 18

如果您使用 sftp 连接到 sftp 服务器,您应该生成一个 ssh 密钥对(即在 unix 上:ssh-keygen)并将您的公钥(即 或 )提供sftp .ssh/id_rsa.pub- .ssh/id_ed25519.pubserver-admin。

如果您的 ssh 私钥位于默认目录中,软件可能会自动找到它。

如果你使用openssh(sftp是它的一部分),你可以使用

sftp -i <privateKey> user@example.com
Run Code Online (Sandbox Code Playgroud)

连接到 sftp 服务器,一旦 sftp-server-admin 将您的 ssh公钥放到正确的位置(取决于设置和使用的 ssh 服务器)。


小智 5

您可以将发送给您的文本保存为文件,并使用 Cyber​​duck 上内置的“选择...”功能。我使用的是 Windows 计算机,因此我使用了记事本应用程序。我认为 Mac 上的 TextEdit 也会有类似的结果。步骤如下:

  1. 打开记事本
  2. 粘贴为您的 SSH 密钥提供的文本
  3. 保存文件(我命名为我的key.txt
  4. 打开 Cyber​​duck
  5. 选择打开连接
  6. 选择SFTP(SSH 文件传输协议)作为连接类型
  7. 输入服务器、端口(22)、用户名
  8. 您可以跳过密码 - 它将使用 SSH 密钥
  9. 对于 SSH 私钥,选择选择...并找到文件的保存位置
  10. 单击连接
  11. 将出现“未知指纹”提示,单击“允许”(如果这是您信任且经常使用的连接,则可以选择“始终”)
  12. 您应该看到您的文件和/或指定的文件夹位置!


小智 5

添加到 nikiwaibel 的答案中,某些 sftp 版本不接受“-i”,因此您可以使用替代方案

sftp -oIdentityFile=<privateKey.file> user@example.com
Run Code Online (Sandbox Code Playgroud)