我尝试使用ec2-user登录但由于某种原因登录失败:
使用用户名:ubuntu我能够正常登录,但是,我没有任何权限,我不能sudo su为写入我的文件的权限。我尝试使用cyberduck终端并发送命令选项,但sudo su不能使用它们。 Cyberduck刚刚旋转。
答案 0 :(得分:0)
我认为ec2-user
帐号不适用于最近的Ubuntu AMI,这可能解释登录失败。
您可以通过几种方式解决此问题。第一种是专门为FTP创建一个新的用户帐户,并仅向必要的文件夹授予权限。首先create the user,然后create a public/private key pair进行非交互式登录。这将允许您像平常一样操作FTP客户端。
我的首选解决方案是将文件上传到ubuntu
主目录,然后以root身份运行脚本,将文件移动到正确的位置。您不必以这种方式修改系统配置,但您必须分两步执行文件传输。
在/home/ubuntu
中创建暂存文件夹并将文件复制到那里。在服务器上创建一个/home/ubuntu/copy.sh
脚本,如下所示:
#!/bin/bash
sudo su #this will only work if sudo doesn't prompt for a password
cp -r /home/ubuntu/stage/* /var/www/html/
然后从您的开发机器中调用脚本:
$ ssh -i ~/path/to/key.pem ubuntu@ec2.hostname.com /home/ubuntu/copy.sh
如果你想变得非常花哨,你可以设置一个git存储库,并在推送时使用post-receive hook来处理这一切。根本不需要FTP客户端。