服务器管理工具

FinalShell 密钥登录服务器,顺便传文件,我这样搞定!

2026-09-27 · FinalShell

FinalShell 密钥登录服务器,顺便传文件,我这样搞定! 配图

在管理远程服务器时,你是不是还在每次连接都手动输入密码?这不仅效率低下,而且安全性也堪忧。今天,我来手把手教你如何利用 FinalShell 这款实用的工具,通过 SSH 密钥认证的方式连接服务器,并轻松进行 SFTP 文件传输,彻底告别繁琐的密码输入。

我们将以 FinalShell 4.9.0 版本为例,演示在 Windows 客户端上的具体操作。这个方法不仅更安全,也能大大提升你的工作效率。

服务器管理工具

FinalShell 密钥登录,告别密码烦恼

SSH 密钥登录相比密码登录,优势在于更高的安全性和便捷性。你只需要在本地生成一对密钥,将公钥上传到服务器,以后连接时就不再需要输入密码了。下面我们来看看具体怎么操作。

1. 生成或导入 SSH 密钥对

首先,我们需要在本地准备好一对 SSH 密钥。如果你还没有,FinalShell 提供了内置的工具可以帮你生成。

打开 FinalShell 客户端,在顶部的工具栏中,找到并点击“工具”菜单,然后选择“SSH密钥生成器”。此时会弹出一个密钥生成窗口。你可以选择密钥类型(通常使用 RSA 或 ED25519),设置密钥位数(建议至少 2048 位),然后点击“生成”按钮。生成完成后,你会看到公钥和私钥的内容。记得点击“保存私钥”按钮,将私钥文件(通常是 .ppk 或 .pem 格式,FinalShell 默认保存为 .pri 或 .key)保存到你的电脑上一个安全的地方。这个私钥是连接服务器的关键,千万不要泄露给他人。如果你已经有了一个现成的密钥对,也可以跳过生成步骤,直接准备好私钥文件即可。

2. 将公钥上传到服务器

有了密钥对之后,下一步就是把公钥放到你的服务器上。这是实现密钥认证的关键一步。连接服务器后,需要将公钥内容追加到服务器用户家目录下的 ~/.ssh/authorized_keys 文件中。如果 .ssh 目录或 authorized_keys 文件不存在,你需要手动创建它们。

一种简单的方法是先用密码登录一次服务器(如果你能通过密码登录的话),然后手动创建或编辑文件。假设你的公钥内容是 ssh-rsa AAAAB3NzaC... your_email@example.com,你可以执行以下命令:

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

请将“你的公钥内容”替换为你刚才生成的公钥字符串。确保 ~/.ssh 目录的权限是 700,authorized_keys 文件的权限是 600,这是 SSH 服务的严格要求,否则密钥认证会失败。

如果想了解更多关于 SSH 密钥的配置细节,可以参考 FinalShell SSH 密钥配置指南。

3. 配置 FinalShell 使用密钥登录

现在,我们回到 FinalShell 客户端,创建一个新的连接,并配置它使用私钥进行认证。

点击 FinalShell 左上角的“连接”图标(通常是一个插头形状),选择“新建SSH连接”。在弹出的“新建SSH连接”窗口中,你需要填写以下信息:

  1. 名称:给你的连接起一个好记的名字,比如“我的生产服务器”。
  2. 主机:填写你的服务器 IP 地址或域名。
  3. 端口:SSH 端口,默认为 22,如果服务器改过端口,请填写实际端口号。
  4. 用户:你的服务器用户名,比如 root 或 ubuntu。
  5. 认证:这是最关键的一步。将“认证方式”下拉菜单从“密码”改为“PublicKey”。
  6. 密钥文件:点击旁边的文件夹图标,浏览并选择你刚才保存的私钥文件。

确认所有信息无误后,点击右下角的“连接”按钮。如果一切配置正确,FinalShell 应该会直接连接到你的服务器,而无需输入密码。我测试时发现,如果服务器端公钥没放对位置或者权限不对,这里会连接失败并提示错误信息,所以务必仔细检查上一步骤。

如果你是首次安装 FinalShell 客户端,可以看看这篇 FinalShell Windows 安装指南。

4. SFTP 文件传输初体验

成功连接到服务器后,FinalShell 的另一个——SFTP 文件传输就触手可及了。在连接成功后,你会看到界面底部多出了一个“SFTP”选项卡。点击它,左侧是你的本地文件系统,右侧则是服务器上的文件系统。你可以像使用文件管理器一样,通过拖拽、复制粘贴等方式,在本地和远程服务器之间轻松传输文件。

比如,我想把本地桌面的一个 index.html 文件上传到服务器的 /var/www/html 目录,我只需要在左侧的文件树中找到 index.html,然后将其拖拽到右侧服务器文件树中的 /var/www/html 路径即可。下载文件也是一样的操作。这比传统的 scp 命令要直观和方便得多,尤其适合普通用户。

更多 SFTP 文件传输的技巧,请查阅这篇 FinalShell SFTP 文件传输实用指南。

常见问题和解决办法

在使用 FinalShell 密钥登录和 SFTP 传输时,可能会遇到一些问题。这里我整理了几个常见的问题和它们的解决办法。

1. 为什么密钥上传后还是提示密码?

这个问题通常是由于服务器上 ~/.ssh 目录或 authorized_keys 文件的权限设置不正确导致的。SSH 服务对密钥文件的权限要求非常严格,如果权限过大,出于安全考虑会直接拒绝使用密钥。

解决办法: 确保服务器端 ~/.ssh 目录权限为 700,~/.ssh/authorized_keys 文件权限为 600。你可以通过以下命令修正权限:

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

同时,检查 ~/.ssh 目录及其父目录的所有者是否是你当前登录的用户。

2. 连接超时或拒绝?

连接服务器时遇到超时或拒绝连接的提示,原因可能比较多,需要逐一排查。

解决办法:

  • 检查服务器防火墙: 确认服务器的防火墙(如 ufw 或 firewalld)是否允许 SSH 端口(默认 22)的入站连接。例如,在 Ubuntu 系统上可以运行 sudo ufw allow 22/tcp。
  • 检查本地防火墙: 有时候你本地电脑的防火墙或杀毒软件可能会阻止 FinalShell 的网络连接,尝试暂时关闭它们进行测试。
  • SSH 服务是否运行: 确保服务器上的 SSH 服务(通常是 sshd)正在运行。在服务器上执行 sudo systemctl status sshd 查看服务状态。
  • IP 地址或端口错误: 仔细核对你在 FinalShell 中输入的主机 IP 地址和端口号是否正确。

如果涉及到端口转发等复杂配置,可能需要额外查看 FinalShell 端口转发指南。

3. FinalShell 界面乱码?

连接服务器后,终端显示中文或其他字符出现乱码,这通常是客户端和服务器端的字符编码不一致导致的。

解决办法:

  • FinalShell 编码设置: 在 FinalShell 的连接属性中,找到“终端”选项卡,将“编码”设置为 UTF-8。这几乎是现代 Linux 服务器的通用编码。
  • 服务器编码: 检查服务器的默认编码设置。通常可以在 /etc/locale.conf 或通过 locale 命令查看。如果服务器端编码不是 UTF-8,可能需要调整服务器设置,或者在 FinalShell 中选择匹配的编码。

通过以上步骤,相信你已经能够熟练使用 FinalShell 进行密钥登录和 SFTP 文件传输了。享受更高效、更安全的远程管理体验吧!

延伸阅读

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