FinalShell使用技巧

FinalShell 在 Windows 上用密钥登录和传文件,这几步就搞定!

2026-09-08 · FinalShell

FinalShell 在 Windows 上用密钥登录和传文件,这几步就搞定! 配图

为了方便大家管理服务器,FinalShell 确实是个好帮手。但每次连接都要输密码,特别是密码很复杂的时候,简直要命!今天咱们就聊聊如何在 Windows 上用 FinalShell 实现密钥登录,并且顺手把文件传输(SFTP)也搞定,彻底摆脱密码的困扰,提高效率。我用的 FinalShell 版本是 4.5.10,基本操作在大多数近期版本里都适用。

FinalShell 主界面概览

FinalShell 在 Windows 上装完,准备开始用密钥登录服务器!

想象一下,你打开 FinalShell,一点连接按钮,嗖的一下就进去了,不用再一个字母一个字母地敲密码。这种丝滑的体验,就是 SSH 密钥登录带来的。它不仅方便,而且安全性也比密码高得多。如果你还没安装 FinalShell,可以参考这篇指南:/blog/finalshell-windows-install-guide/。

第一步:生成或导入 SSH 密钥

密钥登录的前提,就是你得有一对 SSH 密钥,包括一个私钥和一个公钥。私钥自己留着,公钥放到服务器上。

  1. 生成新密钥对: 打开 FinalShell 主界面后,看看顶部菜单栏,找到“工具”选项。点击它,在下拉菜单里选择“SSH密钥管理”。

    在弹出的“SSH密钥管理”窗口中,你会看到左侧有一个“SSH密钥”的树形结构。点击右下角的“生成”按钮。

    这时候会弹出一个小窗口让你配置密钥。通常,我们选择“RSA”类型,长度默认 2048 位或 4096 位都可以。密钥密码(Passphrase)是可选的,如果你想让你的私钥多一层保护,可以设置一个。但如果设置了,每次用密钥登录时,FinalShell 就会让你输入这个私钥密码。设置好后,点击“生成”,FinalShell 就会在默认路径生成一对密钥,比如 id_rsa (私钥) 和 id_rsa.pub (公钥)。

    我测试时发现,如果你不设置密钥密码,登录会更加无感,但如果电脑可能被他人接触,设置密码是更好的选择。

  2. 导入现有密钥: 如果你之前已经在其他地方生成过密钥,或者从其他服务器迁移过来,也可以点击“导入”按钮,选择你的私钥文件(通常是 id_rsa 或以 .pem 结尾的文件)。导入后,它也会显示在“SSH密钥管理”的列表中。

第二步:配置服务器使用你的公钥

密钥生成好了,现在需要把你的公钥放到目标服务器上。这个公钥文件通常以 .pub 结尾。

  1. 获取公钥内容: 在“SSH密钥管理”窗口中,选中你刚刚生成或导入的密钥。在右侧的详情区域,你会看到“公钥内容”,复制这些内容。

  2. 上传公钥到服务器: 首先,你需要用传统的密码方式登录一次你的服务器。登录后,执行以下命令:

    mkdir -p ~/.ssh
    chmod 700 ~/.ssh
    echo "你的公钥内容" >> ~/.ssh/authorized_keys
    chmod 600 ~/.ssh/authorized_keys
    

    把 你的公钥内容 替换成你刚才复制的公钥字符串。这几条命令的意思是:

    • mkdir -p ~/.ssh:如果 ~/.ssh 目录不存在,就创建它。
    • chmod 700 ~/.ssh:设置 ~/.ssh 目录的权限为 700 (只有所有者有读、写、执行权限)。这个权限非常重要,不正确会导致密钥登录失败。
    • echo "你的公钥内容" >> ~/.ssh/authorized_keys:将你的公钥内容追加到 ~/.ssh/authorized_keys 文件中。这个文件是服务器用来存储信任公钥的。
    • chmod 600 ~/.ssh/authorized_keys:设置 authorized_keys 文件的权限为 600 (只有所有者有读写权限)。同样,这个权限也很重要。

    如果你需要把多个公钥添加到同一台服务器,只需要重复 echo 命令,将不同的公钥内容追加到 authorized_keys 文件即可。

第三步:在 FinalShell 中设置密钥登录会话

现在,公钥已经在服务器上安家了,我们回到 FinalShell,设置一个新的连接会话。

  1. 新建会话: 在 FinalShell 主界面,点击左上角的“连接”图标(通常是一个绿色的加号),或者在左侧的会话树区域右键选择“新建会话” -> “SSH连接”。

  2. 配置连接信息: 在弹出的“新建连接”窗口中:

    • 名称: 给你的连接起个好记的名字,比如“我的生产服务器”。
    • 主机: 填写服务器的 IP 地址或域名。
    • 端口: 默认为 22,如果服务器 SSH 端口有改动,请修改。
    • 用户: 填写你的服务器用户名,比如 root 或 ubuntu。
  3. 选择认证方式为密钥: 在“认证方式”下拉菜单中,选择“密钥(RSA/DSA/ED25519)”。

    接着,点击旁边的“选择密钥文件”按钮。在弹出的窗口中,找到并选择你在第一步中生成或导入的私钥文件(例如 id_rsa)。

    如果你给私钥设置了密码,FinalShell 会有一个选项让你输入并保存私钥密码。如果你不希望每次连接都输入,可以勾选“保存私钥密码”(但请确保你的电脑环境安全)。

    确认所有信息无误后,点击连接弹窗右下角的“测试连接”按钮,看看是否能成功连接。如果提示“认证成功”,那就大功告成了!点击“确定”保存会话。

第四步:使用 SFTP 传输文件

当你的 SSH 会话通过密钥成功连接后,FinalShell 会话窗口的右侧区域会自动显示一个文件管理界面,这就是 SFTP (SSH File Transfer Protocol) 的魅力所在。

这个 SFTP 界面分成左右两栏:左边是你的本地文件系统,右边是连接的服务器文件系统。你可以像管理本地文件一样,在服务器上进行各种文件操作:

  • 上传文件: 直接从左侧拖拽文件或文件夹到右侧的服务器目录,或者在左侧选中文件,右键选择“上传”。
  • 下载文件: 从右侧拖拽服务器上的文件或文件夹到左侧的本地目录,或者在右侧选中文件,右键选择“下载”。
  • 新建文件夹、删除文件、重命名: 这些操作在右侧服务器文件系统上都可以通过右键菜单轻松完成。

SFTP 传输非常方便,特别是需要频繁与服务器交换文件时,比传统的 FTP 更安全,而且 FinalShell 的集成做得非常流畅。想了解更多 SFTP 的使用技巧,可以看看这篇教程:/blog/finalshell-sftp-file-transfer/。

常见问题

在使用 FinalShell 进行密钥登录和 SFTP 传输时,你可能会遇到一些小麻烦,这里列出几个常见问题及解决办法。

1. 密钥登录失败,提示权限问题

这通常是服务器上的 ~/.ssh 目录或 ~/.ssh/authorized_keys 文件权限设置不正确导致的。 解决办法: 再次用密码登录服务器,执行以下命令检查并修正权限:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

确保 ~/.ssh 目录的拥有者是当前登录用户,且权限为 drwx------ (700),authorized_keys 文件的拥有者也是当前登录用户,且权限为 -rw------- (600)。

2. SFTP 无法上传文件或创建文件夹

这多半是服务器目标目录的写入权限不足。 解决办法:

  1. 检查用户权限: 确认你当前登录的用户对目标目录有写入权限。例如,如果你想上传到 /var/www/html,而你当前用户不是 root 或没有 sudo 权限,可能就需要调整目标目录的权限或将文件上传到有权限的目录。
  2. 调整目录权限: 使用 chmod 命令修改目标目录的权限。例如,sudo chmod 775 /var/www/html (谨慎使用,根据实际需要调整,不要盲目给 777 权限)。

3. 私钥有密码,每次连接都要输入,好麻烦!

如果你在生成私钥时设置了密码,那么每次连接都会被 FinalShell 要求输入。 解决办法: 在“SSH密钥管理”窗口中,你可以选中对应的私钥,然后点击“编辑”。这里可以取消私钥密码,或者在 FinalShell 的会话配置中勾选“保存私钥密码”。如果选择保存,请确保你的本地电脑环境安全,防止私钥泄露。

4. 找不到 FinalShell 的 SSH 密钥管理工具

有时候新用户会找不到这个功能入口。 解决办法: 在 FinalShell 的主界面,通常在顶部菜单栏会有一个“工具(Tools)”菜单。点击它,在下拉菜单中你就能找到“SSH密钥管理”选项了。它和“选项设置”、“端口转发”等功能在一起。如果你对端口转发感兴趣,可以看看这篇:/blog/finalshell-port-forwarding-guide/。

延伸阅读

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