什么是SSH密钥认证
SSH密钥认证使用一对加密密钥代替密码进行身份验证:私钥保存在你的电脑上必须严格保密,公钥上传到服务器可以公开。服务器用公钥验证你是否持有对应的私钥。SSH密钥认证的优点是即使有人截获了网络通信也无法推导出你的私钥,比密码认证安全得多。推荐使用RSA 4096位或Ed25519密钥类型。
方法一:使用PuTTYgen生成SSH密钥(Windows推荐)
PuTTYgen是PuTTY套件中的密钥生成工具,生成的.ppk格式私钥可被FileZilla直接识别,是Windows用户最便捷的选择。
- 第一步:下载并运行PuTTYgen(puttygen.exe)。在"Parameters"区域选择密钥类型RSA,密钥长度2048位(推荐)或4096位。
- 第二步:点击"Generate"按钮,在空白区域随机移动鼠标,PuTTYgen根据鼠标移动生成随机数。
- 第三步:生成完成后保存私钥——点击"Save private key"保存为.ppk文件(FileZilla原生支持此格式)。
- 第四步:复制公钥——选中顶部文本框中的公钥内容(以ssh-rsa开头的一长串字符)并复制,稍后粘贴到服务器上。
- 第五步:SSH登录服务器,创建.ssh目录(mkdir -p ~/.ssh),将公钥内容粘贴到~/.ssh/authorized_keys文件中。
- 第六步:设置权限——chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys。
重要:在FileZilla中使用时,站点管理器→协议选SFTP→登录类型选"密钥文件"→浏览选择刚才保存的.ppk文件即可。FileZilla Client免费版完整支持SSH密钥认证。
方法二:使用OpenSSH生成密钥(Linux/Mac推荐)
OpenSSH是Linux和macOS系统自带的SSH工具,Windows 10 1809+也内置了OpenSSH客户端。生成的密钥无需转换即可在FileZilla中使用。
- 第一步:在终端(Linux/Mac)或PowerShell(Windows 10+)中执行SSH密钥生成命令,选择RSA 4096位密钥类型。
- 第二步:按提示选择密钥保存位置(默认~/.ssh/id_rsa)和设置密码保护(推荐设置密码增加安全性)。
- 第三步:部署公钥到服务器——使用ssh-copy-id user@server_address命令自动部署,或手动复制id_rsa.pub内容到服务器。
- 第四步:转换密钥格式——FileZilla直接支持OpenSSH格式。如果遇到兼容问题,用PuTTYgen加载id_rsa后保存为.ppk格式即可。
方法三:使用Bitvise SSH Client
Bitvise SSH Client是功能丰富的Windows SSH客户端,也提供密钥管理功能。适合已在使用Bitvise的用户。
- 第一步:打开Bitvise SSH Client,点击"Client key manager"。
- 第二步:点击"Generate New Key",选择密钥类型和长度(推荐RSA 4096),输入密码保护。
- 第三步:导出私钥为.ppk格式供FileZilla使用,公钥可在"Export"中导出并部署到服务器。
安全最佳实践
- 始终设置私钥密码:即使私钥文件泄露,没有密码也无法使用。
- 密钥长度至少2048位:推荐使用4096位RSA或Ed25519。
- 不同服务器使用不同密钥对:避免一个密钥泄露影响所有服务器。
- 定期轮换密钥:建议每6-12个月更换一次。
- 禁用服务器密码登录:配置SSH服务器只允许密钥认证。
SSH密钥常见问题
FileZilla支持哪些SSH密钥格式?
FileZilla原生支持PuTTY的.ppk格式和OpenSSH格式的私钥。
SSH密钥认证比密码安全多少?
4096位RSA密钥暴力破解需数十亿年,密码可能被字典攻击截获。
连接时提示"Server refused our key"?
检查公钥是否写入authorized_keys,权限是否为600。
FileZilla免费版支持SSH密钥吗?
完全支持。免费版完整支持SFTP协议和SSH密钥认证。