我有两个Linux机器,我正在尝试使用sftp将文件从一台机器上传到另一台机器。我已经将我在终端中使用的所有命令都放到了她的脚本中,如下所示。
#!/bin/bash
cd /home/tests/sftptest
sftp user1@192.168.0.1
cd sftp/sftptest
put test.txt
bye
但这不起作用,并给我错误,如目录不存在。另外,终端保持在>sftp中,这意味着不会执行bye。我该如何解决这个问题呢?
我正在使用Net::SFTP将文件上传到服务器。代码如下:
uri = URI.parse('sftp://host.org')
io = StringIO.new(csv_string)
timeout 120 do
Net::SFTP.start(uri.host,ENV['SFTP_USER'],:password=>ENV['SFTP_PASS'],:port=>22) do |sftp|
sftp.upload(io, "/ftpguest/Medstro/" + file_name)
en
所以,它所做的就是成功地连接,然后上传文件logo.png,但是如果我使用html上传代码,文件的内容不是web主机上的内容,也不是用html上传的内容。它放在文件中的是第二个文件之间的实际文本,所以对于这个例子,logo.png的内容实际上是logo.png,而不是图片。
require_once("ftp/vendor/autoload.php");
use phpseclib\Net\SFTP;
$sftp = new SFTP('SERVER');
if (!$sftp->login('USER', 'PW')
我希望将SFTP用户限制在他们的主文件夹中,这样他们就不会看到其他人的文件夹/主目录。不幸的是,所有SFTP用户目前都可以看到其他用户的文件夹。所有的帖子和例子都指出了ChrootDirectory,但由于某种原因,我无法让它发挥作用。
$ sudo nano /etc/ssh/sshd_config
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory %h # The %h causes "Broken pipe" error while trying to login
C
我最近为我的服务器配置了phpseclib 2.0;所以我对此非常陌生。当试图通过普通HTML表单和使用phpseclib的PHP上传文件小于1MB的jpg图像时,图像会被上传到我想要的位置,但是文件大小只有14个字节(970 KB是原始文件大小)。有什么帮助吗?我的代码如下:
// Establish the SFTP connection
$sftp = new \phpseclib\Net\SFTP('www.myhost.com');
// Login with username and password, and inform if the login was su