SSH和流浪汉

Vagrant是用于创建VM的便捷工具。 这很像启动EC2实例,但是在Vagrant的情况下,一切都已本地化。 最重要的是,它是免费的。

我倾向于将Ubuntu作为首选的Linux版本。 因此,所有生产EC2实例都使用自定义的Ubuntu AMI。 但是,最初使用Vagrant VM在本地测试使用各种软件库对该系统的各个方面进行测试。 此外,您可以安装从Debian到OpenSuse到Heroku的Cedalon其他操作系统的本地化VM。

生成Heroku的Cedalon(这是安装了Ruby和Node.js的Ubuntu 10.04的版本)的本地实例就像键入一样容易:

在本地启动Heroku的Cedalon
vagrant init heroku http://dl.dropbox.com/u/1906634/heroku.box
vagrant up

然后,您可以像这样通过SSH连接到正在运行的VM:

SSH到本地VM
vagrant ssh

但是, vagrant ssh命令可能会出现问题,尤其是在您要自动执行SSH的某些方面的情况下–例如,您正在SSH之上使用某些库。 在这种情况下,您需要直接使用SSH 而不是通过Vagrant。

幸运的是,您可以很容易地正常使用SSH到本地Vagrant实例。 您需要告诉SSH使用哪个密钥(Vagrant为您创建了一个),以哪个用户身份连接(通常是vagrant)以及要连接到哪个端口(通常为2222)。 所有这些信息都可以通过命令vagrant ssh-config

要在使用Vagrant实例时使用普通的Jane SSH,首先需要执行以下命令:

打印出流浪者钥匙的位置
vagrant ssh-config | grep IdentityFile  | awk '{print $2}'

3叉命令最终会告诉您Vagrant在哪里创建了密钥文件。 命令awk '{print $2}'ssh-config字符串中以IdentityFile (指向其位置)开头的第二行打印。

现在您知道了密钥文件的位置,可以使用ssh(假设默认端口未从2222更改–请仔细检查ssh-config来确保),如下所示:

使用普通的SSH
ssh -i /some/dir/.vagrant.d/insecure_private_key -l vagrant -p 2222 127.0.0.1

如果您碰巧启动了不同的VM,例如,我同时拥有Heroku Cedalon和普通的Ubuntu实例,则SSH可能会抱怨远程主机标识已更改。 这是一个有效的警告,因为与本地主机关联的RSA指纹确实已更改。

您可以建议SSH通过添加两个其他标志来忽略此警告 。 我强烈建议您仅通过命令行而不是使用某些SSH配置文件来执行此操作,因为警告SSH引发是完全合法的,并且可以使您免遭中间人攻击。

但是,如果您正在使用本地化的VM,并且需要绕过该警告,请使用以下两个标志:

SSH的两个附加标志
-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no

因此,当我SSH到本地Vagrant实例时,我会输入以下内容:

SSH到Vagrant实例
ssh -i /some/dir/.vagrant.d/insecure_private_key -l vagrant -p 2222 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no 127.0.0.1

最后,要关闭Vagrant实例,只需发出以下命令:

SSH到Vagrant实例
vagrant destroy

Vagrant使启动本地化开发环境变得非常容易– Vagrant实例的启动速度比EC2实例快,并且它们是免费的。 现在,您知道了如何使用普通的SSH连接到它们。 你能挖一下它么?

参考: The Disco Blog博客中的JCG合作伙伴 Andrew Glover的SSH&Vagrant

翻译自: https://www.javacodegeeks.com/2013/11/ssh-vagrant.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值