Dotcloud 实现无密码 ssh操作(scp等) | using ssh(scp...) under dotcloud without password

dotcloud上传文件的默认操作是通过dotcloud push命令完成的,但这个push操作会把原来服务上的内容覆盖掉,但是如果本地没有dotcloud主机上的文件,push操作就会导致原来的文件丢失,不过这样的丢失可以使用rollback操作恢复,但还是我们不想看到的。今天我就遇到了这样的情况,这个wordpress就是建在dotcloud上的,系统重装后本地没有远程网站上的文件。

于是尝试ssh连接(dotcloud ssh mckelvin.wordpress),登录成功后执行(cd current) ,current目录表示当前目录,相当与普通主机的wwwroot目录,执行scp命令copy本地文件到远端却提示要密码,但是dotcloud没有提供任何密码,网上搜了一下找到了一篇类似的解决方案,尝试文中提到的方法,成功將本地的一个文件copy到了ssh上的某目录了。记录如下:

if you cannot read Chinese,please click here to use Google Translate

打开~/.ssh目录,注意:.ssh目录是个隐藏文件夹,新建一个文本文件,命名为config。填入类似如下信息并保存

Host mckelvin.wordpress
    HostName wordpress.mckelvin.dotcloud.com
    Port 5067
    User dotcloud
    IdentityFile ~/.dotcloud/dotcloud.key

参数Host,HostName,Port都是你需要根据实际情况修改的,这些信息你可以通过执行类似如下操作(dotcloud info mckelvin.wordpress )获得,其中~/.dotcloud/dotcloud.key这个文件是你配置api key的时候自动生成的,一般情况下不用更改。下图为我的配置。


这样相当与配置了一个ssh连接,这个ssh已经和dotcloud没直接关系了,你可以在命令行下直接ssh到这个服务。现在你可以试一下,应该可以直接ssh了。如下图。

 

如果连接失败,请尝试注销登录或重新启动下系统。

如果链接没问题,那么就可以执行操作了,(这样的操作好像只能single command模式下进行,我也不太清楚)。以copy一个本地文件到服务端为例:

执行操作:
scp /path/to/local_file.txt mckelvin.wordpress:~/current/path/to/remote_file.txt

该操作把本地目录/path/to下的local_file.txt拷贝到了服务端的~/current/path/to/remote_file.txt这个位置(前面提到过了~/current相当与普通主机的更目录wwwroot)。如图,操作成功!

更多文件操作scp请操作参考http://www.hypexr.org/linux_scp_help.php 感谢@L.Y.提供的链接

全文完毕!



关于 McKelvin

a hacker who's interested in `music computing` and `network security`.
此条目发表在 Work 分类目录,贴了 , 标签。将固定链接加入收藏夹。
  • wangning98

    LZ截图中用ubuntu的主题是什么?这种灰色不错。

  • http://my6133.com/ tom

    dotcloud 是不是不是免费了

    MCKelvin 回复:

    现在收费了啊,以前测试是免费的。不过现在也提供Free,Pro,Enterprise三个版本。