在Mac OS X下使用终端连接OpenShift的SSH并部署应用
今天折腾了一整天 OpenShift,早就听说 OpenShift 的大名,却一直无缘一试。从今天早上 10 点到现在(下午5点30分),终于摸透了 Mac 下使用 Terminal(终端)SSH 登陆 OpenShift 的方法,记下来与大家分享。 什么是 OpenShift 由大名鼎鼎的 RedHat 推出的一
今天折腾了一整天 OpenShift,早就听说 OpenShift 的大名,却一直无缘一试。从今天早上 10 点到现在(下午5点30分),终于摸透了 Mac 下使用 Terminal(终端)SSH 登陆 OpenShift 的方法,记下来与大家分享。
什么是 OpenShift
由大名鼎鼎的 RedHat 推出的一款 PaaS 服务,有免费的 Plan,支持创建 3 个应用,支持 PHP、Pyhton、Ruby、NodeJS 等语言。
使用 SSH 连接 OpenShift
阅读下面的文字假设你已有以下准备:
- 已经注册 OpenShift 账号,并创建了一个 Gear(即一个应用)
- 使用 Mac OS X 10.6 及更高版本的系统
- 了解 vim 的基本使用方法
- 已经通过终端安装了 rhc(OpenShift 的部署工具,安装指令 gem install rhc)
首先,先使用 rhc 检测一下当前的状态,打开终端,输入
rhc-chk
需要先输入你的 OpenShift 对应的密码,回车。
一般会遇到如下的结果:
Password: *********
Analyzing system
....F.F
=================================================
|| Your system did not pass all of the tests ||
=================================================
1) Your public key is not loaded into a running ssh-agent: /var/root/.ssh/id_rsa.pub
If this is your only error, your connection may still work, depending on your SSH configuration.
2) Cannot SSH into your app: xxxxx-ooooo.rhcloud.com.
需要明确的是,如果你运行 rhc-chk 一切正常,那么就无需继续看下去了,直接使用原本的 git / ssh 的操作指令进行管理和部署即可。
下面的内容针对解决上述两个问题。
问题 1:Your public key is not loaded into a running ssh-agent
首先我们需要创建 SSH 需要用到的公钥和私钥
如果你已经创建,可以使用如下命令查看:
ls ~/.ssh/
若结果找两个形如 xx_rsa 和 xx_rsa.pub 两个文件则不需要执行如下的生成步骤,否则继续
输入命令
ssh-keygen
一路回车,最后会提示成功创建
下面需要为秘钥和目录设置正确的权限
依次输入命令:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa*
这样就设置了正确的权限。
将公钥内容提交到 OpenShift 控制面板
输入如下命令
vim ~/.ssh/id_rsa.pub
会打开刚才生成的秘钥中公钥的内容,全选复制。打开 OpenShift 控制面板
https://openshift.redhat.com/app/account
将全部内容粘贴到右下角【Public Keys】的那个文本框里。若已经提交了公钥,则建议删除现有的公钥再提交新的公钥。
接下来添加 ssh key 到 ssh-agent 中
输入如下命令
ssh-add ~/.ssh/id_rsa
控制台回返回如下信息:
Enter passphrase for /var/root/.ssh/id_rsa:
之前我们在创建秘钥时并没有设置 passphrase,所以直接按回车即可。系统返回:
Identity added: /var/root/.ssh/id_rsa (/var/root/.ssh/id_rsa)
一劳永逸,将 key 添加到 config 中
打开控制台,输入如下指令
vim ~/.ssh/config
在打开的新界面立输入以下内容(提示,按下 i 键进入编辑模式,按下 ESC 键退出编辑模式,按下 :wq 保存退出…… 说过了要有 vim 基础的哈)
Host *.rhcloud.com
IdentityFile ~/.ssh/id_rsa
VerifyHostKeyDNS yes
StrictHostKeyChecking no
保存后整个为 ssh 添加秘钥的过程就就解决了。现在再运行 rhc-chk 命令肯定不会再出现 Your public key is not loaded into a running ssh-agent 这样的错误了。
问题2:Cannot SSH into your app: xxxxx-ooooo.rhcloud.com.
其实这个问题很简单,你的这个应用的 IP 地址 SSH 被封了,虽然能 ping 通,但是 SSH 连不上。
解决方法:删除这个应用,重新创建。
本文网址:http://dev.ppios.com/2013/01/ssh-openshift-using-mac-os-x/
上一篇: 如何使用vue.extend实现alert模态框弹窗组件
下一篇: 关于重复显示的详细介绍