Deployment AWS EC2和rvm ssh

Deployment AWS EC2和rvm ssh,deployment,amazon-web-services,ssh,amazon-ec2,rvm,Deployment,Amazon Web Services,Ssh,Amazon Ec2,Rvm,我已经为我的AWS ec2 VPS(部署器)创建了用户 当我使用以下工具登录时: ssh -i ~/.ssh/aws/*...*.pem ubuntu@ec2*...*.amazonaws.com 命令rvm use 2.0.0工作正常 => 但是当我使用su-deployer时,我得到了: deployer@ip***:/home/ubuntu$ rvm The program 'rvm' is currently not installed. You can install it

我已经为我的AWS ec2 VPS(部署器)创建了用户

当我使用以下工具登录时:

ssh -i ~/.ssh/aws/*...*.pem ubuntu@ec2*...*.amazonaws.com
命令rvm use 2.0.0工作正常

=>

但是当我使用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_档案

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

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

您需要使用:

su - deployer

它将确保您使用登录shell

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

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

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

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


所以
sudo su-deployer

很抱歉,这是打印错误,实际上有su-deployerdid您以用户
ubuntu
或仅以
deployer
的身份安装rvm吗?谢谢,我使用密码直接以ssh作为部署者登录。但问题仍然没有解决。展开器内的Rvm(su-展开器、sudo su展开器)不工作。我已经尝试了很多方法——将它添加到remote.bashrc文件中,使用:ssh发送comand和rvmdeployer@...combash——登录-c“rvm”。我无法理解为什么它可以与ubuntu用户一起使用,而不能与deployer用户一起使用。AWS安全策略中可能存在一些问题?我想我会在ubuntu用户下使用它,并放弃尝试为部署者用户应用它。
su - deployer