我已经创建了一个AWS EC2实例,我希望能够以最简单和最直接的方式使用FileZilla将文件上传到服务器目录。
我为此制作了一个视频教程。只是检查:
使用FileZilla和SFTP连接Amazon EC2文件目录,视频教程
以上视频教程总结:
Edit (Preferences) > Settings > Connection > SFTP, Click "Add key file” Browse to the location of your .pem file and select it. A message box will appear asking your permission to convert the file into ppk format. Click Yes, then give the file a name and store it somewhere. If the new file is shown in the list of Keyfiles, then continue to the next step. If not, then click "Add keyfile..." and select the converted file. File > Site Manager Add a new site with the following parameters: Host: Your public DNS name of your EC2 instance, or the public IP address of the server. Protocol: SFTP Logon Type: Normal User: From the docs: "For Amazon Linux, the default user name is ec2-user. For RHEL5, the user name is often root but might be ec2-user. For Ubuntu, the user name is ubuntu. For SUSE Linux, the user name is root. For Debian, the user name is admin. Otherwise, check with your AMI provider." Press Connect Button - If saving of passwords has been disabled, you will be prompted that the logon type will be changed to 'Ask for password'. Say 'OK' and when connecting, at the password prompt push 'OK' without entering a password to proceed past the dialog. Note: FileZilla automatically figures out which key to use. You do not need to specify the key after importing it as described above.
如果你使用Cyberduck,请遵循以下步骤。
如果你有任何权限问题,请查看这篇文章。
老问题,但我发现,所有你需要的是添加ppk文件。 设置—>连接—> SFTP—>添加keyfile 用户名和主机与您在http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-connect-to-instance-linux.html中提到的使用putty时提供的相同 也许能帮到别人。
对于已被广泛接受的答案,有一个小小的说明 Yasitha Chinthaka:
注意:FileZilla会自动找出要使用的键。你不需要 需要在如上所述导入密钥后指定密钥。
在我的例子中,我已经从我过去使用的其他实例中获得了其他5个ppk(新实例的ppk位于列表的底部)。我添加了新实例的新ppk,但它不让我连接到它。错误信息:too many tries / attempts。
在我删除了未使用的ppks后,我终于能够登录到实例。
所以不,Filezilla没有那么聪明;-)
在我的例子中,Filezilla将AWS ppk文件发送到我试图安全连接的每个其他FTP服务器。
这太疯狂了。下面有一个解决方案,但它很难看。
正如@Lucio M指出的那样,它的表现并不好。
从这个讨论:https://forum.filezilla-project.org/viewtopic.php?t=30605
n0lqu:
同意了。但是,鉴于我不能控制服务器的操作,是否有任何方法可以在FileZilla中指定站点应该使用密码而不是密钥进行身份验证,反之亦然?或者告诉它先尝试密码,然后密钥只有当密码失败?在我看来,它首先尝试了密钥,然后没有机会尝试密码。
Filezilla admin回复:
没有这样的选择。
n0lqu:
是否可以添加这样的选项,或者是否有任何人都可以推荐的好的变通方法?目前,我所知道的唯一解决办法是从一般首选项中删除键,只有在连接到需要它的特定网站时才添加它,然后在完成后再次删除它,这样它就不会扰乱其他网站。
botg:
现在,您可以有两个FileZilla实例,它们具有单独的配置dirs(例如,一个已安装,一个可移植)。
Timboskratch:
I just had this same issue today and managed to resolve it by changing the "logon type" of the connection using a password in the site manager. Instead of "Normal" I could select either "Interactive" or "Ask for Password" (not really sure what the difference is) and then when I tried to connect to the site again it gave me a prompt to enter my password and then connected successfully. It's not ideal as it means you have to remember and re-type you password every time you connect, but better than having to install 2 instances of FileZilla. I totally agree that it would be very useful in the Site Manager to have full options of how you would like FileZilla to connect to each site which is set up (whether to use a password, key, etc.) Hope this is helpful! Tim
还看到: https://forum.filezilla-project.org/viewtopic.php?t=34676
所以,看起来:
对于多个具有密钥/密码的FTP站点,使用多个Filezilla安装, 或者, 对所有服务器使用相同的PPK密钥。
我希望有一种方法告诉FileZilla哪个ppk是为站点管理器中的哪个站点
最简单直接的方法就是创建一个FTP登录。 这是一个关于stackoverflow本身的简单易懂的教程网站,如何在2分钟内完成设置… 在亚马逊云服务器上设置FTP
首先Filezilla是一个FTP/SFTP客户端/服务器。为此,我们需要使用客户端。
1)客户端下载地址:https://filezilla-project.org/
2)进入AWS管理控制台,然后进入EC2。选择需要访问的实例,复制该实例的DNS或IP地址,然后粘贴到Filezilla主机名中。
下面的图片:亚马逊实例访问通过FileZilla
3)然后,输入您创建的实例的用户名,对于Amazon-ami,它将是ec2-user,对于其他操作系统,它将是不同的。然后输入密码和端口,端口为21或22。
4)然后,它会要求密钥,它是pem格式的,只需选择.pem文件,然后它会确认身份验证。单击Yes,然后完成。
注意:在EC2安全组中允许FTP访问所需的端口号21和22。
https://www.cloudjojo.com/how-to-connect-ec2-machine-with-ftp/
首先,你必须在ec2机器上安装一些ftp服务器,比如vsftpd。 配置vsftpd配置文件允许写入和开放端口。 创建ftp客户端用户。 连接ftp客户端,如filezilla。
确保在aws安全组上打开端口21。
FileZilla不为我工作,我一直得到这个错误:
Disconnected: No supported authentication methods available (server sent: publickey)
有效的是sftp命令。
连接EC2实例
sftp -i "path/to/key.pem" ec2-user@ec2-54-212-34-84.us-west-2.compute.amazonaws.com
下载文件/ dirs
下载路径/ To /source/file.txt和路径/ To /source/dir:
lcd ~/Desktop
cd path/to/source
get file.txt
get -r dir
上传文件/ dirs
将localpath/ To /source/file.txt和~/localpath/ To /source/dir上传到remotepath/ To /dest:
lcd localpath/to/source
cd remotepath/to/dest
put file.txt
put -r dir
你所要做的就是: 1. 在filezilla上打开站点管理器 2. 添加新站点 3.如果端口不是默认端口,请给出主机地址和端口 4. 通信类型:SFTP 5. 会话类型密钥文件 6. 把用户名 7. 选择关键文件目录,但注意Windows文件资源管理器寻找PPK文件作为默认选择下拉菜单上的所有文件,然后选择你的pem文件,你就很好了。
因为你添加了新的网站和配置下次当你想连接时,只需选择你保存的网站和连接。就是这样。
这是非常简单的,如果你使用你的pem文件(我使用macOS / windows用户可以遵循相同的步骤)。
下载你的FileZilla(我用的是macOS -下载了免费版,这就足够了) 在FileZilla(⌘S)中打开站点管理器->新站点
在Host字段中输入主机名。
例如:eca -**-**-**- 据美联社-西南- 9. - 111. compute.amazonaws.com
选择“协议”为“SFTP - SSH文件传输协议” 选择登录类型为密钥文件 在user字段中输入你的用户名:对我来说是ubuntu(找到你的ssh用户)
注意:
操作系统vs用户名 Amazon - ec2-user Centos - Centos Debian管理员或根用户 Fedora - ec2-user RHEL - ec2用户或root用户 SUSE - ec2-user或root Ubuntu - Ubuntu或root
对于Key file字段,浏览pem文件:并单击Connect
就是这样:)玩得开心!
注意:
(记住允许SSH连接到您的IP地址从EC2)如果不是,您将得到连接错误消息!
注意:允许您的IP通过SFTP连接您的AWS实例
EC2 -> SecurityGroups -> SSH -> Inbound rules -> Edit -> Add Rule ( SSH|TCP|22|My IP(it's get IP automatically | name for rule) ->保存
如果你习惯使用命令行,并且使用git bash从你的PC上ssh到远程服务器(ubuntu等),你可以使用如下所示的sftp,它总是很有效,而且看起来非常快。pem文件可以从aws EC2或Lightsail或任何服务器下载。在以下命令中替换pem文件的路径/namd。还要将IP地址替换为远程服务器的IP地址[例如远程Unix或linux/ubuntu服务器]。
$ sftp -i /c/Users/pat/Downloads/LightsailDefaultKey-us-east-1-2.使用实例pem ubuntu@123.45.6789
使用sftp实际上传/下载的附加命令 转到远程文件夹 sftp > pwd Sftp > CD /home/ubuntu/mymedia
进入本地文件夹 sftp > lpwd 本地工作目录:/ sftp> lcd /c/Users/pat/Desktop/Camtasia . sftp 上传本地文件到服务器 Sftp > put * 如果需要下载到本地PC,可以使用get Sftp > get *
注意:这类似于ssh使用pem文件连接到远程。 $ ssh -i /c/Users/pat/Downloads/LightsailDefaultKey-us-east-1-2。pem ubuntu@123.45.6789
谢谢!
对于Ubuntu用户来说,有另一种不需要PuttyGen的方法来制作和设置密钥。我假设您可以通过终端连接到服务器,并希望设置FileZilla用于文件传输。
在终端执行命令:
ssh - keygen
它将提示您输入私钥和公钥文件的目标路径,默认情况下为
/ home /用户。ssh/id_rsa和/home/user/ ssh/ rsa酒吧
你可以让它保持原样。然后,打开公钥并复制其内容:
猫的. ssh / id_rsa . pub
在终端中,在服务器端,打开.ssh/authorized_keys并粘贴复制的行:
nano . ssh / authorized_keys
您可能会看到一些当前行,如“ssh-rsa AAAAB3Nz…”。没关系。简单地放置新行,并粘贴之前复制的行。
推荐文章
- 警告:未受保护的私钥文件!当尝试SSH到Amazon EC2实例时
- 使用boto3连接CloudFront时,如何选择AWS配置文件
- 在亚马逊云服务器上设置FTP
- 使用scp将文件复制到Amazon EC2实例?
- 无法将图像推送到Amazon ECR -由于“没有基本的身份验证凭据”而失败
- 如何测试AWS命令行工具的凭据
- 将Keypair添加到现有的EC2实例中
- AWS S3:您试图访问的桶必须使用指定的端点寻址
- 你会因为EC2上的“停止”实例而被收费吗?
- 下载一个已经上传的Lambda函数
- S3 - Access-Control-Allow-Origin头
- 何时使用Amazon Cloudfront或S3
- 如何处理错误与boto3?
- 什么数据存储在亚马逊EC2实例的临时存储?
- boto3 client NoRegionError:只能在某些时候指定区域错误