如何使用ssh登录openshift

openshift是免费的云平台,适合搞个公司网站或者个人blog。最近想把博客从openshift上迁移出去,wordpress本身有插件可以导出文章内容。但是对应的附件和图片利用导入工具,会有导入不完整的问题,简单的办法就是用ssh访问,将整个 uploads文件下载下来。要支持ssh,openshift有一套安全机制。通过 rhc 上传key,实现无密码登录。

具体参考:

https://developers.openshift.com/en/getting-started-windows.html#client-tools

如果不使用git,可以跳过 git的步骤。

ruby是从 www.rubygems.org/gems/rhc  下载的,需要自己搞定 vpn的问题,否则提示ssl失败

rhc登陆openshift

安装rhc

可能出现的问题:

no such file dl/import

http://stackoverflow.com/questions/28896733/rhc-setup-gives-error-no-such-file-dl-import

中间会提示输入openshift的账号和密码,成功后,会在本地.ssh 目录生成公私钥。并提示上传服务器。

这里要关注 .ssh的路径,后面客户端登录时要用到

ssh登录

登录你的openshift账号,点击application ,进去就能看到详细的信息:

openshift信息

根据右侧的账号和地址 ,用ssh就可以登录了

登录时选择key:

ssh key

这样就直接登录进去了,可以进行相关资料的备份了

EC2 Instance 重启后ssh无法登陆的问题

创建instance后,第一次都能正常运行,但是重启后大概率(大于80%)创建的instance就ssh连不上了。刚开始以为自己的业务导致服务器僵死,后来发现80端口都是正常的,说明服务器没有问题,只是ssh无法连接。
于是通过其他手段登录到服务器,想手动拉起sshd,系统提示:

Failed to start SSH server :
Starting sshd: /etc/ssh/sshd_config line 157: Bad yes/without-password/forced-commands-only/no argument: without-passwordUseDNS
[FAILED]

根据提示,发现sshd_config的配置中有非法的内容(没有换行),于是手动,修改后sshd正常启动。
进一步定位分析,发现原来 EC2的 instance 的/etc/rc.d/rc.local 中有脚本控制每次开机后向sshd_config 末尾写入:

UseDNS no
PermitRootLogin without-password

当这2行缺少合法的换行时,sshd就开机无法启动了。
解决方法:
1)屏蔽rc.local脚本的相关语句
2)修改sshd_config的属性为只读