Command line 无交互的SFTP内联put
我正在尝试自动化应用程序部署,作为其中的一部分,我需要将文件上载到服务器。我已经为SFTP服务器创建了一个最小用户并配置了chroot,但我无法确定如何上传非交互式文件 目前我正在做Command line 无交互的SFTP内联put,command-line,sftp,scp,chroot,Command Line,Sftp,Scp,Chroot,我正在尝试自动化应用程序部署,作为其中的一部分,我需要将文件上载到服务器。我已经为SFTP服务器创建了一个最小用户并配置了chroot,但我无法确定如何上传非交互式文件 目前我正在做scpmyfilebuildUser@myserver.com:newBuilds/ 我尝试了sftpbuildUser@myserver.commyfile(newBuilds是chroot目录),但它没有上传任何内容,只是连接了 支持此方法而不使用scp的原因是限制scp访问要困难得多(根据我所了解的信息)。如果
scpmyfilebuildUser@myserver.com:newBuilds/
我尝试了sftpbuildUser@myserver.commyfile
(newBuilds
是chroot目录),但它没有上传任何内容,只是连接了
支持此方法而不使用
scp
的原因是限制scp访问要困难得多(根据我所了解的信息)。如果您使用的是OpenSSH服务器,则chrooting适用于scp和SFTP
有关说明,请参阅:所以我认为你的问题无关紧要
无论如何,
sftp
(假设使用OpenSSH)并不是专门为命令行上传而设计的。您通常使用-b
开关来使用put
命令指定批处理文件
sftp buildUser@myserver.com -b batchfile
包含以下内容的批处理文件:
put myfile
如果确实只需要命令行上传,请参阅:
- 或
- (或者简单地使用,而不是
)sftp
sftp
配置chroot
,但无法实现。我的解决方案是使用rssh
,只允许scp
。这对我来说很有效,因为我试图限制的用户是已知且经过身份验证的用户。您可以像这样向SFTP传递内联命令:
sftp -o PasswordAuthentication=no user@host <<END
lcd /path/to/local/dir
cd /path/to/remote/dir
put file
END
sftp-o PasswordAuthentication=nouser@host