SSH工具
FinalShell 在 Windows 上用密钥登录,SFTP 传文件超方便
日常工作中,我们经常需要连接远程服务器进行文件操作或执行命令。如果你还在每次登录都手动输入密码,那可真是效率杀手,而且安全性也不够好。今天我就来手把手教你,如何在 Windows 上利用 FinalShell 这款趁手的工具,通过 SSH 密钥实现安全便捷的登录,并用它的 SFTP 功能轻松传输文件。咱们就以 FinalShell v4.6.13 版本为例,一步步搞定它。

第一步:生成或导入 SSH 密钥对
密钥登录比密码登录更安全、更方便。如果你想了解更多 SSH 密钥配置的细节,可以参考。FinalShell 内置了密钥管理功能,非常实用。
-
打开密钥管理器: 首先,打开 FinalShell 客户端。在主界面的顶部菜单栏,找到“工具”选项,点击下拉菜单中的“SSH密钥管理”。会弹出一个新的窗口,这就是你的密钥存放地。
-
新建密钥对: 在“SSH密钥管理”窗口中,你会看到一个按钮叫“新建密钥”。点击它,会弹出一个“新建SSH密钥对”的对话框。
- “算法”通常选择 ED25519 或 RSA,推荐 ED25519。
- “密码”这一项,你可以选择为空,但为安全起见,我个人建议设置一个强密码。
- “名称”随便填一个你容易记住的。 确认无误后,点击“生成”按钮。稍等片刻,密钥对就生成好了。你会发现左侧的密钥列表中多出了你刚刚创建的密钥对,其中包含一个私钥和一个公钥。公钥是我们需要上传到服务器上的。
第二步:将公钥上传到服务器并配置
生成了密钥对,下一步就是把公钥放到你的服务器上,让服务器认识这个公钥。
-
复制公钥内容: 在“SSH密钥管理”窗口中,选中你刚刚生成的密钥对。右侧会显示该密钥对的详细信息。找到“公钥”标签页,点击“复制公钥内容”按钮。公钥的文本内容就复制到剪贴板了。
-
登录服务器并创建文件: 如果你是第一次使用密钥登录,需要先用密码登录一次服务器。你可以通过 FinalShell 创建一个临时的密码登录会话。 登录后,在服务器的家目录下,创建一个名为
.ssh的隐藏文件夹(如果已存在则跳过):
mkdir -p ~/.ssh
然后,编辑 `~/.ssh/authorized_keys` 文件。如果文件不存在,它会被创建;如果存在,就在末尾追加你的公钥。 bash
vim ~/.ssh/authorized_keys
# 或者用 echo 追加:
# echo "你的公钥内容" >> ~/.ssh/authorized_keys
```
粘贴你刚刚复制的公钥内容,保存并退出文件。记住,authorized_keys 文件中每行是一个公钥。
- 设置文件权限:
这一步非常关键,权限不对会导致密钥登录失败。服务器对
~/.ssh目录和~/.ssh/authorized_keys文件的权限要求非常严格。
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys ``` 这样就确保了只有所有者才能读写这两个文件,增加了安全性。
第三步:在 FinalShell 中配置会话使用密钥登录和 SFTP 传输
服务器端配置好了,现在回到 FinalShell 客户端,设置你的连接会话,并了解 SFTP。
-
新建或编辑会话: 在 FinalShell 主界面,点击左上角的“连接”按钮(或左侧会话树中右键选择“新建会话”)。如果已经有会话,可以右键点击会话名称,选择“修改”。 在弹出的“新建/修改SSH会话”对话框中,填写服务器的 IP 地址、端口(通常是 22)、用户名。
-
选择认证方式为公钥: 找到“认证方式”选项,将其从“密码”改为“公钥”。 然后点击“选择密钥”按钮,在弹出的列表中找到你第一步中创建的密钥对名称,选中它。 如果你的私钥设置了密码,FinalShell 在连接时会提示你输入密钥密码。
-
连接测试与 SFTP 操作: 配置完成后,点击“确定”保存会话。然后双击左侧会话树中的这个会话,或者右键选择“连接”。如果一切顺利,你应该就能不输入密码(或只输入一次密钥密码)直接登录到你的服务器了!我测试时发现,当服务器端配置正确后,连接速度明显比密码登录要快一些。 当你成功连接到服务器后,FinalShell 界面下方或右侧会显示一个文件管理区域,这就是 SFTP 客户端。你可以直接从本地电脑拖拽文件或文件夹到 SFTP 界面中的服务器路径下进行上传,或者选中服务器文件拖拽到本地进行下载。对于一些需要频繁操作服务器文件的用户来说,FinalShell 的 SFTP 功能简直是福音,省去了命令行操作的繁琐。
常见问题
在使用 FinalShell 和 SSH 密钥登录的过程中,可能会遇到一些小麻烦,这里列出几个常见的问题和解决办法。
问题一:密钥登录失败,提示权限问题
描述: 尝试用密钥登录时,FinalShell 弹出错误,提示认证失败或权限不足。
解决办法: 这几乎是密钥登录最常见的问题。请回到服务器端,仔细检查以下两处文件或目录的权限:
~/.ssh目录的权限: 必须是700。你可以使用ls -ld ~/.ssh查看,如果不是,执行chmod 700 ~/.ssh。~/.ssh/authorized_keys文件的权限: 必须是600。使用ls -l ~/.ssh/authorized_keys查看,如果不是,执行chmod 600 ~/.ssh/authorized_keys。 SSH 服务为了安全,对这些文件的权限要求非常严格,任何多余的写权限都可能导致拒绝。
问题二:公钥复制粘贴时出错,导致无法登录
描述: 确认了密钥生成和文件权限都没问题,但还是无法登录。
解决办法: 这可能是因为在复制公钥内容时,不小心复制了多余的空格、换行符,或者遗漏了字符。
- 重新复制: 回到 FinalShell 的“SSH密钥管理”界面,再次点击“复制公钥内容”按钮。
- 仔细粘贴: 在服务器的
~/.ssh/authorized_keys文件中,确保每行公钥内容是完整的,没有多余的空格或字符。建议使用cat ~/.ssh/authorized_keys命令查看文件内容,比对一下。一个有效的公钥通常以ssh-rsa或ssh-ed25519开头,以用户名或主机名结尾。
希望这篇实操教程能帮助你更高效、更安全地使用 FinalShell 管理你的服务器。如果你还没安装 FinalShell,可以参考这篇 FinalShell Windows 安装指南。掌握了密钥登录,你的服务器运维之路会顺畅很多!
延伸阅读
若需进一步查阅,可先看本站以下教程: