工具使用
FinalShell 用密钥登录更安全,Win11 上 SFTP 传输文件这样搞定!
平时工作里,经常需要连接到远程服务器进行文件管理或者跑命令,如果每次都输密码,不仅麻烦,安全性也差了一截。今天就来跟大家聊聊怎么在 Windows 11 上用 FinalShell 4.6.0 版本通过 SSH 密钥安全地连接服务器,以及如何方便地进行 SFTP 文件传输。这可比传统的密码登录方式方便又安全多了。
FinalShell 密钥登录,告别密码烦恼
SSH 密钥登录是一种更安全的认证方式。它基于一对加密的密钥:一个公钥放在服务器上,一个私钥保存在本地电脑上。连接时,服务器会验证你提供的私钥是否与它的公钥匹配。
1. 准备 SSH 密钥对
首先,你需要一对 SSH 密钥。如果你还没有,FinalShell 自身就提供了生成工具,非常方便。打开 FinalShell,点击顶部菜单栏的“工具” -> “SSH 密钥生成器”。
在弹出的窗口中,你可以选择密钥类型(通常 RSA 或 Ed25519 都可以,但 Ed25519 现代且性能更好),设置密钥长度。为了安全,强烈建议你为私钥设置一个密码(Passphrase)。这样即使私钥文件不小心泄露,没有密码也无法被直接使用。点击“生成”按钮后,它会帮你生成公钥和私钥。记得把它们保存到一个安全且容易找到的地方,比如 C:\Users\你的用户名\.ssh\ 目录下。文件名可以是 id_rsa 和 id_rsa.pub(或其他你喜欢的名称)。

2. 将公钥部署到服务器
生成密钥对后,你需要把你的公钥(比如 id_rsa.pub 文件的内容)上传到你想要连接的服务器上。具体步骤如下:
- 登录服务器:先用传统的密码方式登录你的服务器。
- 创建
.ssh目录:在服务器上,进入你的用户主目录(通常是/home/你的用户名/或/root/),然后执行mkdir -p ~/.ssh命令,确保.ssh目录存在。如果已存在则跳过。 - 设置
.ssh目录权限:执行chmod 700 ~/.ssh,这很重要,否则 SSH 可能不会读取里面的密钥文件。 - 创建或编辑
authorized_keys文件:执行touch ~/.ssh/authorized_keys如果文件不存在。然后用vi或nano编辑器打开~/.ssh/authorized_keys文件,将你在本地生成的公钥内容(就是id_rsa.pub文件里的那一长串以ssh-rsa或ssh-ed25519开头的字符串)粘贴进去。一行一个公钥,不要有空格或换行。 - 设置
authorized_keys文件权限:执行chmod 600 ~/.ssh/authorized_keys。
这些步骤完成后,你的服务器就已经准备好接受密钥登录了。如果想了解更多关于 SSH 密钥的详细配置,可以参考这篇 FinalShell SSH 密钥配置教程。
3. 配置 FinalShell 4.6.0 使用私钥连接
现在回到 FinalShell 客户端,我们来配置一个新的会话:
- 新建会话:点击左上角的“连接”图标,选择“新建 SSH 连接”。
- 填写连接信息:
- 名称:起一个好记的名字,比如“我的生产服务器”。
- 主机:输入服务器的 IP 地址或域名。
- 端口:默认是 22,如果服务器修改过 SSH 端口,请填写真实的端口号。
- 用户:输入你服务器上的用户名(比如
root或你的普通用户)。
- 选择认证方式:这是关键一步!在新建会话弹窗的右侧,你会看到一个叫做“认证方式”的下拉菜单,将其从“密码”改为“公钥”。
- 指定私钥路径:认证方式选择“公钥”后,下方会多出一个“私钥文件”的选项。点击旁边的文件夹图标,找到你之前在本地保存的私钥文件(比如
id_rsa)。如果你的私钥有密码(Passphrase),会话配置里也会有相应的地方让你填写。 - 连接测试:配置完成后,点击“确定”保存。然后在左侧的会话树中双击你刚创建的连接,FinalShell 就会尝试使用你的私钥连接服务器。第一次连接可能会提示你确认服务器的指纹信息,确认无误后点击“是”即可。
如果你对 FinalShell 的安装还有疑问,可以参考我们之前的 FinalShell Windows 安装指南。
SFTP 文件传输,拖拽更方便
密钥登录配置完成后,SFTP 文件传输就变得非常简单了。FinalShell 集成的 SFTP 功能就像本地文件管理器一样好用。
1. 打开会话并进入 SFTP 视图
成功连接服务器后,你会看到终端界面。在底部的一排功能按钮中,找到并点击“SFTP”按钮。此时,你会看到终端界面下方区域被分割成左右两栏的 SFTP 视图。左侧显示的是你的本地文件系统,右侧则是服务器上的文件系统。这个设计非常直观,就像我们日常使用的资源管理器。
2. SFTP 文件上传和下载
在 SFTP 视图里,文件传输简直是“傻瓜式”操作:
- 上传文件:想把本地文件传到服务器?直接从左侧本地文件列表拖拽文件或文件夹,放到右侧的服务器目录里就行。我测试时发现,拖拽过程中会有一个清晰的进度条显示,非常方便。
- 下载文件:想把服务器上的文件下载到本地?同样简单,从右侧服务器文件列表拖拽文件或文件夹,放到左侧的本地目录即可。
这种拖拽式的操作方式,大大简化了传统 SFTP 客户端的上传下载流程,省去了很多繁琐的点击步骤。如果你想了解更多 SFTP 文件传输的技巧,可以看看 FinalShell SFTP 文件传输技巧。
3. SFTP 视图的常用操作
除了上传下载,SFTP 视图还支持很多文件管理功能:
- 新建文件夹:在左侧或右侧的空白区域右键,选择“新建文件夹”。
- 删除文件/文件夹:选中文件或文件夹,右键选择“删除”。
- 重命名:选中文件或文件夹,右键选择“重命名”。
- 权限修改:选中文件或文件夹,右键选择“属性”或“权限”,可以方便地修改文件或目录的读写执行权限(
chmod)。 - 复制/剪切/粘贴:同样支持常见的复制、剪切、粘贴操作,可以在服务器内部移动文件,也可以在本地与服务器之间进行。
这些功能都集成得非常好,基本上不需要再额外打开其他工具就能完成大部分文件操作。
常见问题
在使用 FinalShell 进行密钥登录和 SFTP 传输时,可能会遇到一些小问题,这里整理了几个常见的情况和解决办法。
1. 密钥连接失败,报错 “Auth failed”
这通常意味着服务器认证失败。可能的原因有:
- 私钥文件路径错误:请仔细检查你在 FinalShell 中配置的私钥文件路径是否正确。
- 私钥密码错误:如果私钥设置了密码,请确保在 FinalShell 会话配置中填写的密码是正确的。
- 服务器端配置问题:检查服务器上
.ssh目录和authorized_keys文件的权限是否正确(.ssh目录权限 700,authorized_keys文件权限 600)。文件内容是否正确复制,有没有多余的空格或换行。 - 服务器 SSH 服务配置:检查服务器的
/etc/ssh/sshd_config文件,确保PubkeyAuthentication yes和PasswordAuthentication no(如果想禁用密码登录)已设置。
2. SFTP 传输文件权限不足
当你尝试上传或修改服务器上的文件时,如果提示权限不足,很可能是因为当前登录的用户没有目标目录的写入权限。解决办法:
- 切换用户:尝试用拥有更高权限的用户(如
root)登录,或者上传到你有权限的目录。 - 修改目录权限:如果确定需要当前用户对目标目录有写入权限,可以通过 SSH 终端执行
chmod命令来修改目录权限,例如chmod 775 /path/to/your/directory。
3. 登录后无法显示文件目录(空目录或乱码)
这通常是服务器的文件系统字符编码与 FinalShell 客户端设置不一致导致的。解决办法:
- 检查 FinalShell 编码设置:在会话配置中,找到“编码”选项,尝试将其从默认的“UTF-8”切换到“GBK”或者其他适合你服务器编码的选项。大部分 Linux 服务器都使用 UTF-8,但也有一些老旧系统可能使用其他编码。
- 检查服务器区域设置:有时服务器的
locale设置不正确也会导致乱码。可以尝试登录服务器,执行locale命令查看当前编码,并根据需要修改。
通过以上步骤,相信你就能在 FinalShell 中安全高效地使用 SSH 密钥登录和 SFTP 文件传输功能了。希望这篇文章能帮你省去不少麻烦!
延伸阅读
若需进一步查阅,可先看本站以下教程: