SCP是基于SSH的安全文件传输协议,几乎所有Linux系统默认都已安装。
从本地复制到远程:
scp /本地/文件/路径 username@远程主机IP:/远程/目录/路径
从远程复制到本地:
scp username@远程主机IP:/远程/文件/路径 /本地/目录/路径
复制整个目录(使用-r参数):
scp -r /本地/目录 username@远程主机IP:/远程/目录
如果SSH服务不在默认的22端口:
scp -P 端口号 文件 用户名@主机:路径
SFTP也是基于SSH的文件传输协议,提供交互式文件传输体验。
sftp username@远程主机IP
连接后可以使用以下常用命令:
- put 本地文件
- 上传文件
- get 远程文件
- 下载文件
- ls
- 列出远程目录内容
- lls
- 列出本地目录内容
- cd
- 更改远程目录
- lcd
- 更改本地目录
- exit
- 退出SFTP会话
sftp -oPort=端口号 username@远程主机IP
要允许SCP/SFTP连接,只需确保SSH服务正在运行:
sudo systemctl status sshd
sudo systemctl start sshd
sudo systemctl enable sshd
编辑SSH配置文件 /etc/ssh/sshd_config
:
sudo nano /etc/ssh/sshd_config
推荐修改:
- 更改默认端口: Port 2222
(或其他非标准端口)
- 禁用root登录: PermitRootLogin no
- 限制用户访问: AllowUsers 用户名
- 启用密钥认证: PasswordAuthentication no
(配置密钥后)
修改后重启SSH服务:
sudo systemctl restart sshd
ssh-keygen -t rsa -b 4096
ssh-copy-id -i ~/.ssh/id_rsa.pub username@远程主机IP
ssh username@远程主机IP
连接被拒绝:
权限问题:
速度慢:
-C
以上设置可以让您在Linux系统上安全高效地进行远程文件传输。