服务器运维
FinalShell 密钥登录 Linux 服务器,这几个地方你别搞错了!
FinalShell 是一款非常受大家欢迎的 SSH 客户端工具,它不仅界面美观,功能也相当丰富,比如文件管理、SFTP、进程管理、流量监控等,而且对个人用户免费。我自己从大学时代就开始用它管理自己的 VPS 服务器,日常调试代码、部署服务都离不开它。
不过,相比传统的密码登录,用 SSH 密钥登录服务器会更安全、更方便,特别是当你管理多台服务器时,不用每次都输入密码。但很多新手朋友在配置密钥登录时,总会遇到各种小问题,导致连接不上。今天,我就以 FinalShell 4.7.0 版本 在 Windows 11 系统 下的实际操作为例,手把手教大家如何正确配置密钥登录 Linux 服务器,并且避开一些常见的坑。

测评一下 FinalShell 4.7.0
在使用 FinalShell 这么多年后,我觉得它确实是一款值得推荐的工具,但也有一些可以改进的地方。这次借着写教程的机会,我重新体验了一下最新版,并从几个大家比较关心的维度打个分。
| 维度 | 分数 | 简短评语 |
|---|---|---|
| 易用性 | 8/10 | 界面直观,功能分区清晰,对于新手上手非常友好,但也有些小功能藏得比较深。 |
| 稳定性 | 9/10 | 连接非常稳定,很少出现意外断开的情况,即使网络波动也能很快恢复,占用系统资源也不高。 |
| SSH 密钥功能 | 7.5/10 | 提供了内置的密钥生成器,导入导出也很方便,但在某些复杂密钥格式的支持上可能不如专业工具全面。 |
总的来说,FinalShell 在易用性和稳定性上表现都非常出色,这在免费工具里是难得的。虽然 SSH 密钥功能还有提升空间,但对于我们日常使用来说已经足够了。
FinalShell 密钥登录 Linux 服务器实操
SSH 密钥登录的核心是生成一对密钥(公钥和私钥),然后把公钥放到服务器上,私钥留在本地。FinalShell 会用私钥来证明你的身份。
1. 生成 SSH 密钥对
首先,我们需要在本地生成一对 SSH 密钥。FinalShell 内置了密钥生成器,非常方便。如果你已经有现成的密钥对,也可以跳过这一步。
- 打开 FinalShell,点击顶部菜单栏的“工具” -> “SSH 密钥生成器”。
- 在弹出的窗口中,选择密钥类型(通常使用 RSA 或 ED25519),设置密钥长度(推荐 2048 位或更高)。你可以为私钥设置一个密码(Passphrase),这样即使私钥被盗,没有密码也无法使用,安全性更高。如果你觉得麻烦,也可以留空,但请务必妥善保管好你的私钥文件。
- 点击“生成”按钮。生成完成后,会显示公钥内容。同时,确保点击“保存私钥”和“保存公钥”,把它们保存到你本地电脑的安全位置,例如
C:\Users\你的用户名\.ssh\目录。记住私钥文件是你的身份凭证,绝不能泄露!
2. 服务器端配置公钥
有了公钥,下一步就是把它放到你的 Linux 服务器上。这一步需要你先用密码或者其他方式连接上服务器。
- 用 FinalShell (或其他方式,如密码)登录到你的 Linux 服务器。如果你是第一次连接,可以参考这篇 FinalShell Windows 安装使用指南。
- 在服务器上,进入当前用户的家目录,并创建一个名为
.ssh的隐藏目录(如果它不存在的话):
然后,修改该目录的权限,确保只有所有者才能读写执行:mkdir -p ~/.sshchmod 700 ~/.ssh - 接下来,把你在第一步中生成的公钥内容(通常以
.pub结尾的文件里的内容)添加到~/.ssh/authorized_keys文件中。你可以使用cat命令、echo命令或者vi/nano等编辑器。注意:如果你已经有authorized_keys文件,请把新的公钥追加进去,而不是覆盖它。一行一个公钥。 假设你的公钥内容是ssh-rsa AAAAB3NzaC... your_email@example.com,你可以这样做:
替换echo "ssh-rsa AAAAB3NzaC... your_email@example.com" >> ~/.ssh/authorized_keysssh-rsa AAAAB3NzaC... your_email@example.com为你自己的公钥内容。我自己习惯用vi编辑器,这样可以更直观地检查文件内容。 - 最后,修改
authorized_keys文件的权限,只允许所有者读写:chmod 600 ~/.ssh/authorized_keys
3. FinalShell 配置密钥连接
现在,公钥已经在服务器上配置好了,我们可以回到 FinalShell 来设置用私钥连接了。
- 在 FinalShell 主界面点击左上角的“连接”图标(或“文件”->“新建连接”),选择“SSH 连接”。
- 填写连接信息:
- 名称:给你的连接起个名字,方便识别。
- 主机:你的服务器 IP 地址或域名。
- 端口:SSH 端口,默认为 22,如果你的服务器修改了,请填写对应的端口。
- 认证方式:选择“公钥”。
- 用户:你的 Linux 用户名,比如
root或ubuntu。 - 私钥文件:点击右侧的文件夹图标,找到你之前保存在本地的私钥文件(通常没有文件后缀,或者
.pem、.key等)。 - 私钥密码:如果你在生成私钥时设置了密码,这里需要输入。
- 点击“确定”保存连接配置,然后尝试连接。如果一切顺利,你应该就能通过密钥成功登录到你的服务器了!关于更详细的 SSH 密钥配置,可以参考这篇 FinalShell SSH 密钥配置详细教程。
常见问题
密钥登录虽然方便,但配置过程中也容易遇到一些问题。这里列举几个常见的,帮你快速排查。
- 私钥文件格式不对? FinalShell 支持 OpenSSH 格式的私钥。如果你是从其他工具(如 PuTTY)生成的
.ppk文件,可能需要先转换一下。FinalShell 自身的密钥生成器生成的格式通常可以直接用。 - 连接失败,提示权限问题? 这通常是服务器上的
~/.ssh目录或authorized_keys文件的权限设置不正确。请务必检查并设置为chmod 700 ~/.ssh和chmod 600 ~/.ssh/authorized_keys。 - 公钥没添加到
authorized_keys文件中? 仔细检查authorized_keys文件内容,确保你的公钥完整地粘贴进去了,并且在一行。有时复制粘贴时会引入多余的换行符或空格。 - 服务器防火墙端口没开? 确保你的服务器防火墙(如
ufw或firewalld)允许 22 端口(或你自定义的 SSH 端口)的入站连接。你也可以尝试临时关闭防火墙进行测试。 - 忘记私钥密码? 如果你在生成私钥时设置了密码,但忘记了,那么这个私钥就无法使用了。你需要重新生成密钥对并重复上述步骤。
- 想通过 FinalShell 传输文件怎么办? FinalShell 集成了 SFTP 功能,在连接成功后,左侧的文件管理区域就可以直接拖拽文件进行传输。这比传统的 SCP 命令方便得多。想了解更多关于文件传输的内容,可以看看这篇 FinalShell SFTP 文件传输指南。
希望这篇教程能帮助你顺利搞定 FinalShell 的 SSH 密钥登录!如果你在操作过程中遇到其他问题,欢迎留言讨论。
延伸阅读
若需进一步查阅,可先看本站以下教程: