0

我为我的 AWS ec2 VPS(部署者)创建了用户

当我登录时:

ssh -i ~/.ssh/aws/*...*.pem ubuntu@ec2*...*.amazonaws.com

命令 rvm use 2.0.0 工作正常

=>

    ubuntu@ip-***:~$ rvm list

    rvm rubies

    =* ruby-2.0.0-p247 [ x86_64 ]

    # => - current
    # =* - current && default
    #  * - default

    ubuntu@ip-***:~$ rvm which
    ubuntu@ip-***:~$ 

但是当我使用su - deployer时,我得到了:

deployer@ip***:/home/ubuntu$ rvm
    The program 'rvm' is currently not installed. You can install it by typing:
    sudo apt-get install ruby-rvm

我想了解如何正确编写 ssh 登录命令。我努力了:

ssh -i ~/.ssh/aws/*.pem *ubuntu@ec2***.amazonaws.com -t 'bash --login -c "rvm"'

但收到“与 ec2- * .amazonaws.com 的连接已关闭”。

在我的本地机器 rvm 中正常运行。我已经添加了

  [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function* 

进入我的 ~/.bash_profile

我花了 3-5 个小时研究与此问题相关的 stackoverflow 主题,但仍然不明白我做错了什么。

任何帮助将不胜感激!提前致谢!

4

2 回答 2

1

我以前遇到过这个问题,有两种方法可以解决它。

第一种方式是直接以部署者用户身份登录到实例。这可能意味着必须创建一个 ssh 密钥对(请参阅 ssh-keygen -t rsa)。然后就可以登录了,ssh deployer@ec2.instance.address这样rvm会直接加载到部署用户的shell中。

第二种方法是在 su 到已部署的用户帐户时不使用破折号。

当您使用破折号时,您将加载自己的 bashrc 与特定用户的 bashrc。

所以sudo su deployer

于 2013-10-26T13:14:00.657 回答
0

你需要使用:

su - deployer

它将确保您使用登录外壳

于 2013-10-23T17:03:48.903 回答