服务器运维

FinalShell 密钥登录 Linux 服务器,这几个地方你别搞错了!

2026-10-10 · FinalShell

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 内置了密钥生成器,非常方便。如果你已经有现成的密钥对,也可以跳过这一步。

  1. 打开 FinalShell,点击顶部菜单栏的“工具” -> “SSH 密钥生成器”。
  2. 在弹出的窗口中,选择密钥类型(通常使用 RSA 或 ED25519),设置密钥长度(推荐 2048 位或更高)。你可以为私钥设置一个密码(Passphrase),这样即使私钥被盗,没有密码也无法使用,安全性更高。如果你觉得麻烦,也可以留空,但请务必妥善保管好你的私钥文件。
  3. 点击“生成”按钮。生成完成后,会显示公钥内容。同时,确保点击“保存私钥”和“保存公钥”,把它们保存到你本地电脑的安全位置,例如 C:\Users\你的用户名\.ssh\ 目录。记住私钥文件是你的身份凭证,绝不能泄露!

2. 服务器端配置公钥

有了公钥,下一步就是把它放到你的 Linux 服务器上。这一步需要你先用密码或者其他方式连接上服务器。

  1. 用 FinalShell (或其他方式,如密码)登录到你的 Linux 服务器。如果你是第一次连接,可以参考这篇 FinalShell Windows 安装使用指南。
  2. 在服务器上,进入当前用户的家目录,并创建一个名为 .ssh 的隐藏目录(如果它不存在的话):
    mkdir -p ~/.ssh
    
    然后,修改该目录的权限,确保只有所有者才能读写执行:
    chmod 700 ~/.ssh
    
  3. 接下来,把你在第一步中生成的公钥内容(通常以 .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_keys
    
    替换 ssh-rsa AAAAB3NzaC... your_email@example.com 为你自己的公钥内容。我自己习惯用 vi 编辑器,这样可以更直观地检查文件内容。
  4. 最后,修改 authorized_keys 文件的权限,只允许所有者读写:
    chmod 600 ~/.ssh/authorized_keys
    

3. FinalShell 配置密钥连接

现在,公钥已经在服务器上配置好了,我们可以回到 FinalShell 来设置用私钥连接了。

  1. 在 FinalShell 主界面点击左上角的“连接”图标(或“文件”->“新建连接”),选择“SSH 连接”。
  2. 填写连接信息:
    • 名称:给你的连接起个名字,方便识别。
    • 主机:你的服务器 IP 地址或域名。
    • 端口:SSH 端口,默认为 22,如果你的服务器修改了,请填写对应的端口。
    • 认证方式:选择“公钥”。
    • 用户:你的 Linux 用户名,比如 root 或 ubuntu。
    • 私钥文件:点击右侧的文件夹图标,找到你之前保存在本地的私钥文件(通常没有文件后缀,或者 .pem、.key 等)。
    • 私钥密码:如果你在生成私钥时设置了密码,这里需要输入。
  3. 点击“确定”保存连接配置,然后尝试连接。如果一切顺利,你应该就能通过密钥成功登录到你的服务器了!关于更详细的 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 密钥登录!如果你在操作过程中遇到其他问题,欢迎留言讨论。

延伸阅读

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