在Ubuntu系统中,使用SFTP(SSH File Transfer Protocol)传输文件是一种安全的方式。以下是使用SFTP传输文件的步骤:
首先,确保你的Ubuntu系统上已经安装了OpenSSH服务器。如果没有安装,可以使用以下命令进行安装:
sudo apt update
sudo apt install openssh-server
安装完成后,OpenSSH服务器会自动启动。你可以通过以下命令检查其状态:
sudo systemctl status ssh
如果服务未运行,可以使用以下命令启动它:
sudo systemctl start ssh
你可以使用命令行SFTP客户端连接到远程服务器。打开终端并输入以下命令:
sftp username@hostname
其中:
username 是你在远程服务器上的用户名。hostname 是远程服务器的IP地址或域名。例如:
sftp user@example.com
系统会提示你输入密码。输入正确的密码后,你将进入SFTP命令行界面。
在SFTP会话中,你可以使用以下命令来传输文件:
put localfile remotefile
例如,将本地文件 example.txt 上传到远程服务器的 /home/user/documents/ 目录下,并命名为 uploaded_example.txt:
put example.txt /home/user/documents/uploaded_example.txt
get remotefile localfile
例如,将远程服务器上的 /home/user/documents/example.txt 下载到本地当前目录,并命名为 downloaded_example.txt:
get /home/user/documents/example.txt downloaded_example.txt
ls
你可以使用 ls -l 来查看详细信息。
cd directory
例如,切换到远程服务器上的 /home/user/documents 目录:
cd /home/user/documents
lcd directory
例如,返回本地当前目录:
lcd ~
完成文件传输后,可以使用以下命令退出SFTP会话:
exit
或者按下 Ctrl + D。
如果你希望限制某些用户只能使用SFTP而不能使用SSH shell,可以在 /etc/ssh/sshd_config 文件中进行配置。例如:
Match User sftpuser
ChrootDirectory /home/sftpuser
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
然后重启SSH服务:
sudo systemctl restart ssh
这样,用户 sftpuser 将只能使用SFTP进行文件传输,而不能登录到shell。
通过以上步骤,你可以在Ubuntu系统中使用SFTP安全地传输文件。