SFTP (SSH File Transfer Protocol) 是一种安全的文件传输协议,基于SSH连接。以下是使用SFTP下载远程文件的方法:
sftp username@remote_host
连接后使用:
get remote_file [local_file]
remote_file
: 远程文件路径local_file
: (可选)本地保存路径和文件名,不指定则使用原名sftp username@remote_host:remote_file local_file
sftp -r username@remote_host:remote_directory local_directory
import paramiko
# 建立连接
transport = paramiko.Transport(('remote_host', 22))
transport.connect(username='username', password='password')
# 创建SFTP客户端
sftp = paramiko.SFTPClient.from_transport(transport)
# 下载文件
sftp.get('/remote/path/file.txt', '/local/path/file.txt')
# 关闭连接
sftp.close()
transport.close()
import com.jcraft.jsch.*;
public class SFTPDownload {
public static void main(String[] args) {
JSch jsch = new JSch();
Session session = null;
try {
session = jsch.getSession("username", "remote_host", 22);
session.setConfig("StrictHostKeyChecking", "no");
session.setPassword("password");
session.connect();
Channel channel = session.openChannel("sftp");
channel.connect();
ChannelSftp sftpChannel = (ChannelSftp) channel;
sftpChannel.get("/remote/path/file.txt", "/local/path/file.txt");
sftpChannel.exit();
session.disconnect();
} catch (JSchException | SftpException e) {
e.printStackTrace();
}
}
}
连接被拒绝:
认证失败:
-i
参数指定私钥文件:
bash
sftp -i /path/to/private_key username@remote_host
权限问题:
大文件传输:
rsync
代替,支持断点续传screen
/tmux
保持会话希望这些方法能帮助您成功下载远程文件。根据您的具体环境和需求选择最适合的方式。