30 我以前从未做过此事,并且正在创建一个bash shell脚本来为我执行此操作。我还将通过ssh连接来做一些事情(我已经知道该怎么做)。因此,也许可以通过ssh上传文件,这样我就可以在一个连接中完成所有操作? 我怎样才能做到这一点? #!/bin/sh cd ./files-to-upload #upload the files command-line bash ssh ftp — 安德鲁 source 那不能回答这个问题,但是也许对某些人有帮助:curl.io允许您通过bash将文件上传到公共http托管(我认为有效期为几个小时) — Vincent Fenet
56 您可以scp用来复制到远程计算机。 scp <file to upload> <username>@<hostname>:<destination path> — 坦根 source 密码也可以与此一起传递吗?另外,这是否会初始化ssh会话?我还能运行其他命令吗? — 安德鲁 2 不可以,您无法通过密码。但是您可以设置ssh密钥身份验证。这意味着您不是通过密码进行身份验证,而是通过存储在文件中并在连接时自动传输的密钥进行身份验证。同样,您不能使用此命令执行其他命令。 — 菲利克斯(Felix) 我的意思是您可以与ssh连接,然后运行scp吗?还是它们是分开的命令? — 安德鲁 2 ssh和scp是不同的命令。有关简介,请参见ssh.com/support/documentation/online/ssh/adminguide/32/…– — tangens 1 @Felix应该指出,如果您没有设置ssh密钥身份验证,则会提示您输入密码。这意味着,具有该设置不是使用此命令的关键要求 — aexl
6 您可能正在寻找SCP或类似物品。 #!/bin/bash cd ./files-to-upload scp * user@host:/path/to/upload/files/to 当然,这必须根据您的喜好进行调整。用您的真实信息替换user @ host。系统将提示您输入密码进行上传。 — 约翰·T source
4 如果确实必须使用ssh(而不是scp),则可以执行以下操作: for filename in *; do cat $filename | ssh user@host "cd /path/to/upload/files/to; cat - > $filename" done 但是常规的scp(例如tangens建议)是最好的。 — 吉米·赫德曼(Jimmy Hedman) source 我正在使用FTp连接,您能告诉我如何将文件从本地传输或复制到远程吗?我正在使用filezilla或winscp ...我需要提取一个zip或从本地复制到远程 — Sushivam
1 scp是更好的答案,因为它将通过SSH加密。 但是,如果确实要通过标准ftp进行操作,请查看ncftpput。它专门用于上传文件: NAME ncftpput-脚本的Internet文件传输程序 提要ncftpput [选项]远程主机远程目录本地文件... — 杜派 source
0 对于ec2实例,您还必须传递.pem文件, $scp -i ~/Desktop/amazon.pem ~/Desktop/file.zip ubuntu@ec2-54-166-128-20.compute-1.amazonaws.com:~/data/ — 埃拉瓦拉桑 source