[英]AWS EC2 and rvm ssh
我已经为我的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@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主题,但仍然不明白我在做什么错。
任何帮助将不胜感激! 提前致谢!
我之前遇到过这个问题,有2种解决方法。
第一种方法是直接以部署者用户身份登录到实例。 这可能意味着必须创建一个ssh密钥对(请参阅ssh-keygen -t rsa)。 然后,您可以使用ssh deployer@ec2.instance.address
登录。这样,rvm将直接加载到已部署用户的Shell中。
第二种方法是在su部署的用户帐户时不使用破折号。
使用破折号时,您将加载自己的bashrc与该特定用户的bashrc。
所以sudo su deployer
您需要使用:
su - deployer
它将确保您使用登录外壳
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.