技术博客
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 密钥对,可以直接跳到下一步。如果没有,我们先来生成一对,这是实现无密码安全登录的关键。
-
打开 FinalShell 并生成密钥: 在 FinalShell 主界面的菜单栏,点击
工具->SSH密钥生成。弹出的窗口中,选择密钥类型(通常是 RSA 或 ED25519),设置密钥位长度(一般 2048 位足够,更高安全性可选择 4096 位),然后点击生成密钥对。你可以给密钥设置一个密码(Passphrase),这会增加一层安全性,每次使用密钥时需要输入。如果觉得麻烦,也可以不设。生成后,别忘了点击保存私钥,把私钥文件(通常是.pem或.ppk后缀)保存在一个安全的地方,比如C:\Users\你的用户名\.ssh\目录下。 -
上传公钥到服务器: 生成密钥对后,公钥(通常是
.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 中配置会话,让它使用私钥进行连接了。
-
新建或编辑会话: 在 FinalShell 主界面的左侧会话树,右键点击
本地或者你想要放置会话的组,选择新建会话。在弹出的新建会话窗口中,填写名称(比如“我的服务器-密钥登录”)、主机(服务器IP地址或域名)、端口(SSH默认是 22)。 -
选择认证方式为“公钥”: 在
新建会话窗口底部,将认证方式从默认的密码改为公钥。然后,点击私钥文件旁边的文件夹图标,找到你第一步中保存的私钥文件(例如id_rsa.pem)。如果你的私钥文件设置了密码(Passphrase),在私钥密码字段中输入。 -
保存并连接: 输入
用户名(通常是root或你的普通用户),确认所有信息无误后,点击确定保存会话。然后,双击左侧会话树中你刚刚创建的会话名称,FinalShell 就会尝试使用你的私钥进行连接。如果一切顺利,你就能直接进入服务器的终端界面了,无需再输入密码。
第三步:使用 SFTP 传输文件
成功连接到服务器后,FinalShell 内置的 SFTP 功能会让你眼前一亮,文件传输变得前所未有的简单。
-
打开 SFTP 视图: 连接成功后,在终端界面的上方你会看到一个
SFTP的按钮(通常在终端按钮旁边)。点击它,会话窗口就会自动切换成左右分栏的 SFTP 视图。左侧是你的本地文件系统,右侧是服务器的文件系统。 -
上传和下载文件:
- 下载文件:在右侧的服务器文件列表中找到你想要下载的文件或文件夹,直接拖动到左侧的本地文件目录中,或者右键点击选择
下载。文件就会迅速传输到你的本地电脑。 - 上传文件:同样地,在左侧的本地文件列表中找到你想要上传的文件或文件夹,直接拖动到右侧的服务器目录中,或者右键点击选择
上传。文件就会被传输到服务器。
- 下载文件:在右侧的服务器文件列表中找到你想要下载的文件或文件夹,直接拖动到左侧的本地文件目录中,或者右键点击选择
-
管理文件和目录: 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 端口转发指南。
延伸阅读
若需进一步查阅,可先看本站以下教程: