【发布时间】:2013-02-04 23:34:08
【问题描述】:
我尝试使用 ec2-user 登录,但由于某种原因登录失败:
使用用户名:ubuntu 我可以正常登录,但是,我没有任何权限,也无法使用 sudo su 获取写入文件的权限。我尝试使用 cyberduck 终端并发送命令选项,但 sudo su 不适用于它们。 Cyberduck 只是旋转。
【问题讨论】:
标签: macos permissions amazon-ec2 sftp cyberduck
我尝试使用 ec2-user 登录,但由于某种原因登录失败:
使用用户名:ubuntu 我可以正常登录,但是,我没有任何权限,也无法使用 sudo su 获取写入文件的权限。我尝试使用 cyberduck 终端并发送命令选项,但 sudo su 不适用于它们。 Cyberduck 只是旋转。
【问题讨论】:
标签: macos permissions amazon-ec2 sftp cyberduck
我认为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 客户端。
【讨论】: