2013-10-23 170 views
0

我已经创建了用户对我的AWS EC2 VPS(部署)AWS EC2和RVM SSH

当我和日志记录:

ssh -i ~/.ssh/aws/*...*.pem [email protected]*...*.amazonaws.com 

命令RVM使用2.0.0正常工作

=>

[email protected]***:~$ rvm list 

    rvm rubies 

    =* ruby-2.0.0-p247 [ x86_64 ] 

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

    [email protected]***:~$ rvm which 
    [email protected]***:~$ 

但是当我使用苏 - 部署我有:

[email protected]***:/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 *[email protected]***.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个小时学习计算器与此问题相关的话题,但还是不明白我在做什么错。

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

+0

是否安装RVM作为用户'ubuntu'或仅作为'deployer'? – mpapis

回答

1

我以前碰到这个问题,并有2种方式来解决这个问题。

第一种方法是直接登录为部署者用户到实例。这可能意味着必须创建一个ssh密钥对(请参阅ssh-keygen -t rsa)。然后,您可以使用ssh [email protected]登录。这样,rvm将直接加载到部署的用户的shell。

第二种方法是不对su部署的用户帐户使用破折号。

当你使用破折号,然后你加载自己的bashrc与特定用户的bashrc。

所以sudo su deployer

+0

谢谢,我设法使用密码直接作为部署者使用ssh登录。但问题仍未解决。部署者(su - 部署者,sudo su部署者)中的Rvm不起作用。我已经尝试了很多东西 - 将它添加到远程.bashrc文件,发送命令rvm:ssh deployer @ ... com bash --login -c“rvm”。我不明白为什么它可以与ubuntu用户协同工作,并且不会与部署者用户使用。 AWS安全策略中可能存在一些问题?我想我会在ubuntu用户下使用它,并放弃尝试将这个应用于部署者用户。 –

0

你娘家使用:

su - deployer 

将确保您使用的登录shell

+0

对不起,这是印刷错误,实际上有部署者 –