如何用sftp登录服务器?详细步骤和注意事项是什么?
- 云服务器
- 2025-12-17
- 5
要通过SFTP(SSH File Transfer Protocol)登录服务器,用户需要具备服务器访问权限,并使用支持SFTP的客户端工具进行连接,以下是详细的操作步骤、注意事项及相关配置说明,帮助用户顺利完成SFTP登录及文件传输操作。
SFTP登录前的准备工作
-
确认服务器信息
需要获取以下关键信息:
- 服务器IP地址或域名:168.1.100 或 ftp.example.com。
- 端口号:默认为 22,若服务器修改过端口需使用自定义端口(如 2222)。
- 用户名和密码:用于身份验证的账户凭据。
- 密钥文件(可选):若使用SSH密钥认证,需准备私钥文件(如 id_rsa)。
-
安装SFTP客户端工具
- Windows系统:推荐使用 FileZilla、WinSCP 或命令行工具 OpenSSH(需通过设置启用)。
- macOS/Linux系统:可直接使用终端内置的 sftp 命令,或安装 FileZilla 等图形化工具。
-
网络连通性检查
确保本地网络可访问服务器,可通过 ping 或 telnet 测试端口:
telnet 192.168.1.100 22若显示“Connected to…”则表示网络正常。

通过命令行登录SFTP服务器
基本登录命令
sftp username@server_ip sftp john@192.168.1.100
输入密码后,若登录成功,将显示 sftp> 提示符。
指定端口登录
若端口非默认值,需通过 P 参数指定:
使用SSH密钥登录
若服务器配置了密钥认证,需通过 i 指定私钥路径:
sftp i /home/user/.ssh/id_rsa john@192.168.1.100
登录后的常用命令
登录成功后,可通过以下命令操作文件:
| 命令 | 功能示例 |
|||
| ls | 列出当前目录文件 |
| cd /path | 切换到指定目录 |
| get file.txt | 下载文件到本地 |
| put local_file.txt | 上传本地文件到服务器 |
| mkdir new_dir | 创建新目录 |
| rm file.txt | 删除文件 |
| exit | 退出SFTP会话 |
通过图形化工具登录(以FileZilla为例)
-
新建站点
打开FileZilla,点击“文件”→“站点管理器”→“新建站点”,填写以下信息:
- 协议:选择 SFTP。
- 主机:输入服务器IP或域名。
- 端口:默认 22,若修改需填写实际端口。
- 用户名:输入服务器账户名。
- 密码:输入账户密码(或选择“密钥”并上传私钥文件)。
-
连接服务器
点击“连接”,若信息正确,右侧面板将显示服务器文件目录,左侧为本地文件目录,可直接拖拽传输文件。

-
登录失败提示“Permission denied”
- 原因:用户名或密码错误;服务器账户被限制SFTP权限。
- 解决:
- 确认用户名和密码无误。
- 检查服务器 /etc/ssh/sshd_config 配置文件,确保 Subsystem sftp 行未被注释。
- 确认用户所属组是否有访问 /home/username 目录的权限(通常需设置为 username:username 和权限 755)。
-
连接超时或无法建立链接
- 原因:服务器防火墙阻止端口;网络问题;SSH服务未运行。
- 解决:
- 检查服务器防火墙规则,开放 22 端口(或自定义端口)。
- 使用 systemctl status sshd 检查SSH服务状态,未运行则执行 systemctl start sshd 启动。
- 若使用云服务器,需在安全组中添加入站规则允许SFTP端口访问。
- 禁用密码登录:服务器配置中设置 PasswordAuthentication no,强制使用SSH密钥认证。
- 修改默认端口:将 sshd_config 中的 Port 22 改为其他端口号(如 2222),减少自动化攻破风险。
- 限制登录用户:在 sshd_config 中添加 AllowUsers username1 username2,仅允许指定用户登录。
- 命令行:使用 mput 命令上传多个文件(支持通配符,如 mput *.txt)。
- 脚本自动化:编写Shell脚本结合 sftp 命令, echo "put file1.txt file2.txt" | sftp username@server_ip
- 图形化工具:在FileZilla中按住 Ctrl 键选择多个文件后拖拽至服务器目录。
常见问题及解决方法
安全建议
相关问答FAQs
问题1:SFTP和FTP有什么区别?
答:SFTP(SSH File Transfer Protocol)是基于SSH的安全文件传输协议,所有数据均经过加密,适合敏感文件传输;而FTP(File Transfer Protocol)是传统协议,数据以明文传输,安全性较低,SFTP使用单个端口(默认22),而FTP需使用端口21(控制)和20(数据传输),且防火墙配置更复杂。
问题2:如何批量上传文件到SFTP服务器?
答:可通过以下方式实现:
