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

FinalShell 在 Windows 上装完,准备开始用密钥登录服务器!
想象一下,你打开 FinalShell,一点连接按钮,嗖的一下就进去了,不用再一个字母一个字母地敲密码。这种丝滑的体验,就是 SSH 密钥登录带来的。它不仅方便,而且安全性也比密码高得多。如果你还没安装 FinalShell,可以参考这篇指南:/blog/finalshell-windows-install-guide/。
第一步:生成或导入 SSH 密钥
密钥登录的前提,就是你得有一对 SSH 密钥,包括一个私钥和一个公钥。私钥自己留着,公钥放到服务器上。
-
生成新密钥对: 打开 FinalShell 主界面后,看看顶部菜单栏,找到“工具”选项。点击它,在下拉菜单里选择“SSH密钥管理”。
在弹出的“SSH密钥管理”窗口中,你会看到左侧有一个“SSH密钥”的树形结构。点击右下角的“生成”按钮。
这时候会弹出一个小窗口让你配置密钥。通常,我们选择“RSA”类型,长度默认 2048 位或 4096 位都可以。密钥密码(Passphrase)是可选的,如果你想让你的私钥多一层保护,可以设置一个。但如果设置了,每次用密钥登录时,FinalShell 就会让你输入这个私钥密码。设置好后,点击“生成”,FinalShell 就会在默认路径生成一对密钥,比如
id_rsa(私钥) 和id_rsa.pub(公钥)。我测试时发现,如果你不设置密钥密码,登录会更加无感,但如果电脑可能被他人接触,设置密码是更好的选择。
-
导入现有密钥: 如果你之前已经在其他地方生成过密钥,或者从其他服务器迁移过来,也可以点击“导入”按钮,选择你的私钥文件(通常是
id_rsa或以.pem结尾的文件)。导入后,它也会显示在“SSH密钥管理”的列表中。
第二步:配置服务器使用你的公钥
密钥生成好了,现在需要把你的公钥放到目标服务器上。这个公钥文件通常以 .pub 结尾。
-
获取公钥内容: 在“SSH密钥管理”窗口中,选中你刚刚生成或导入的密钥。在右侧的详情区域,你会看到“公钥内容”,复制这些内容。
-
上传公钥到服务器: 首先,你需要用传统的密码方式登录一次你的服务器。登录后,执行以下命令:
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,设置一个新的连接会话。
-
新建会话: 在 FinalShell 主界面,点击左上角的“连接”图标(通常是一个绿色的加号),或者在左侧的会话树区域右键选择“新建会话” -> “SSH连接”。
-
配置连接信息: 在弹出的“新建连接”窗口中:
- 名称: 给你的连接起个好记的名字,比如“我的生产服务器”。
- 主机: 填写服务器的 IP 地址或域名。
- 端口: 默认为 22,如果服务器 SSH 端口有改动,请修改。
- 用户: 填写你的服务器用户名,比如
root或ubuntu。
-
选择认证方式为密钥: 在“认证方式”下拉菜单中,选择“密钥(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 无法上传文件或创建文件夹
这多半是服务器目标目录的写入权限不足。 解决办法:
- 检查用户权限: 确认你当前登录的用户对目标目录有写入权限。例如,如果你想上传到
/var/www/html,而你当前用户不是root或没有sudo权限,可能就需要调整目标目录的权限或将文件上传到有权限的目录。 - 调整目录权限: 使用
chmod命令修改目标目录的权限。例如,sudo chmod 775 /var/www/html(谨慎使用,根据实际需要调整,不要盲目给 777 权限)。
3. 私钥有密码,每次连接都要输入,好麻烦!
如果你在生成私钥时设置了密码,那么每次连接都会被 FinalShell 要求输入。 解决办法: 在“SSH密钥管理”窗口中,你可以选中对应的私钥,然后点击“编辑”。这里可以取消私钥密码,或者在 FinalShell 的会话配置中勾选“保存私钥密码”。如果选择保存,请确保你的本地电脑环境安全,防止私钥泄露。
4. 找不到 FinalShell 的 SSH 密钥管理工具
有时候新用户会找不到这个功能入口。 解决办法: 在 FinalShell 的主界面,通常在顶部菜单栏会有一个“工具(Tools)”菜单。点击它,在下拉菜单中你就能找到“SSH密钥管理”选项了。它和“选项设置”、“端口转发”等功能在一起。如果你对端口转发感兴趣,可以看看这篇:/blog/finalshell-port-forwarding-guide/。
延伸阅读
若需进一步查阅,可先看本站以下教程: