技术博客

FinalShell:Win 客户端怎么设置 SSH 密钥和用 SFTP 传文件?

2026-08-14 · FinalShell

FinalShell:Win 客户端怎么设置 SSH 密钥和用 SFTP 传文件? 配图

你是不是经常需要在 Windows 电脑上管理服务器文件?每次登录都要输密码,而且手动上传下载文件效率低下?别担心,今天咱们就聊聊 FinalShell 这个神器,手把手教你如何在 Win 客户端上轻松搞定 SSH 密钥登录和 SFTP 文件传输,告别那些繁琐的操作。

为什么选择 FinalShell?

FinalShell 是一款集 SSH、SFTP、本地终端、任务管理等功能于一身的免费国产工具,尤其在 Windows 平台上,它的界面友好,功能强大,对于我们日常管理服务器来说,真的省心不少。它不仅支持传统的密码登录,更重要的是,还能通过 SSH 密钥进行安全高效的连接,并且内置的 SFTP 功能更是文件传输的利器。

我个人使用 FinalShell 已经好几年了,最近在 Win11 搭配 FinalShell 4.8.9 版本使用时,我发现它在稳定性和易用性上都有了很大的提升。特别是对 SSH 密钥的支持,让我能更安全、更便捷地访问我的远程服务器。

配图说明

第一步:准备 SSH 密钥

如果你已经有了 SSH 密钥对,可以直接跳到下一步。如果没有,我们先来生成一对,这是实现无密码安全登录的关键。

  1. 打开 FinalShell 并生成密钥: 在 FinalShell 主界面的菜单栏,点击 工具 -> SSH密钥生成。弹出的窗口中,选择密钥类型(通常是 RSA 或 ED25519),设置密钥位长度(一般 2048 位足够,更高安全性可选择 4096 位),然后点击 生成密钥对。你可以给密钥设置一个密码(Passphrase),这会增加一层安全性,每次使用密钥时需要输入。如果觉得麻烦,也可以不设。生成后,别忘了点击 保存私钥,把私钥文件(通常是 .pem 或 .ppk 后缀)保存在一个安全的地方,比如 C:\Users\你的用户名\.ssh\ 目录下。

  2. 上传公钥到服务器: 生成密钥对后,公钥(通常是 .pub 后缀,或者在 FinalShell 窗口中直接复制)内容需要添加到你的服务器 ~/.ssh/authorized_keys 文件中。你可以通过以下步骤完成:

    • 登录服务器:先用密码方式登录你的服务器(如果这是你第一次登录)。
    • 创建 .ssh 目录和 authorized_keys 文件:如果 ~/.ssh 目录不存在,执行 mkdir -p ~/.ssh。接着,设置正确权限:chmod 700 ~/.ssh。
    • 添加公钥:将你刚刚生成的公钥内容复制到 ~/.ssh/authorized_keys 文件中。可以使用 echo "你的公钥内容" >> ~/.ssh/authorized_keys 命令,或者用 vim ~/.ssh/authorized_keys 手动粘贴。粘贴后,请确保 authorized_keys 文件的权限是 600:chmod 600 ~/.ssh/authorized_keys。

小贴士:公钥文件的内容一般以 ssh-rsa 或 ssh-ed25519 开头,以你的邮箱或主机名结尾。确保复制完整,不要有多余的空格或换行符。更多关于SSH密钥配置的细节,可以参考 FinalShell SSH 密钥配置指南。

第二步:配置 FinalShell 使用密钥登录

公钥上传到服务器后,我们就可以在 FinalShell 中配置会话,让它使用私钥进行连接了。

  1. 新建或编辑会话: 在 FinalShell 主界面的左侧会话树,右键点击 本地 或者你想要放置会话的组,选择 新建会话。在弹出的 新建会话 窗口中,填写 名称(比如“我的服务器-密钥登录”)、主机(服务器IP地址或域名)、端口(SSH默认是 22)。

  2. 选择认证方式为“公钥”: 在 新建会话 窗口底部,将 认证方式 从默认的 密码 改为 公钥。然后,点击 私钥文件 旁边的文件夹图标,找到你第一步中保存的私钥文件(例如 id_rsa.pem)。如果你的私钥文件设置了密码(Passphrase),在 私钥密码 字段中输入。

  3. 保存并连接: 输入 用户名(通常是 root 或你的普通用户),确认所有信息无误后,点击 确定 保存会话。然后,双击左侧会话树中你刚刚创建的会话名称,FinalShell 就会尝试使用你的私钥进行连接。如果一切顺利,你就能直接进入服务器的终端界面了,无需再输入密码。

第三步:使用 SFTP 传输文件

成功连接到服务器后,FinalShell 内置的 SFTP 功能会让你眼前一亮,文件传输变得前所未有的简单。

  1. 打开 SFTP 视图: 连接成功后,在终端界面的上方你会看到一个 SFTP 的按钮(通常在 终端 按钮旁边)。点击它,会话窗口就会自动切换成左右分栏的 SFTP 视图。左侧是你的本地文件系统,右侧是服务器的文件系统。

  2. 上传和下载文件:

    • 下载文件:在右侧的服务器文件列表中找到你想要下载的文件或文件夹,直接拖动到左侧的本地文件目录中,或者右键点击选择 下载。文件就会迅速传输到你的本地电脑。
    • 上传文件:同样地,在左侧的本地文件列表中找到你想要上传的文件或文件夹,直接拖动到右侧的服务器目录中,或者右键点击选择 上传。文件就会被传输到服务器。
  3. 管理文件和目录: SFTP 视图不仅支持拖拽传输,你还可以右键点击文件或目录,进行 新建文件夹、删除、重命名、设置权限 等操作,就像操作本地文件管理器一样方便。如果你想了解更多关于 SFTP 文件传输的技巧,可以看看这篇文章:FinalShell SFTP 文件传输实用技巧。

常见问题

1. SSH 密钥登录失败,一直提示权限拒绝?

这通常是服务器端 ~/.ssh 目录或 ~/.ssh/authorized_keys 文件的权限问题。请确保权限设置正确:

  • ~/.ssh 目录权限:chmod 700 ~/.ssh
  • ~/.ssh/authorized_keys 文件权限:chmod 600 ~/.ssh

此外,也要检查 /etc/ssh/sshd_config 文件中 StrictModes 是否设置为 yes,如果是,那么权限不当确实会导致拒绝。检查完毕后,可能需要重启 SSH 服务:systemctl restart sshd。

2. SFTP 传输文件时速度很慢或者中断怎么办?

SFTP 传输速度受多种因素影响。首先检查你的网络连接是否稳定。如果网络环境没问题,可能是服务器负载较高,或者目标磁盘空间不足。可以尝试分批传输小文件,或者在服务器上使用 df -h 命令检查磁盘使用情况。如果服务器的网络带宽确实比较低,可以考虑压缩文件后再进行传输。

3. 连接服务器时提示“Connection refused”或者连接超时?

这通常意味着 FinalShell 无法与服务器建立连接。原因可能包括:

  • 服务器防火墙:检查服务器是否开启了防火墙,并且允许 SSH 端口(默认为 22)的入站连接。例如,使用 firewall-cmd --list-all 或 ufw status 查看防火墙规则。
  • 云服务商安全组:如果你使用的是云服务器,请登录云服务商控制台,检查对应的安全组或防火墙规则,确保 SSH 端口是开放的。
  • SSH 服务未运行:服务器上的 SSH 服务可能没有启动。可以尝试在服务器控制台或 VNC 登录后,执行 systemctl status sshd 检查服务状态,并使用 systemctl start sshd 启动。
  • 端口被占用或修改:确认你连接的端口号是正确的。有些服务器会修改 SSH 默认端口以增加安全性。如果你想了解更多关于端口转发的知识,可以参考 FinalShell 端口转发指南。

延伸阅读

若需进一步查阅,可先看本站以下教程: