ansible ssh vagrant vm but connect refused

问题描述

  • ansible需要在vagrant构建的virtual box中配置环境。
  • 但是首先ansible需要能够通过ssh登录到vagrnat vM中。
  • 因此使用了官网配置方式:在inventory中配置一个slave host:
slave_service ansible_ssh_host=127.0.0.1 
ansible_ssh_port=2257 ansible_ssh_user='vagrant' ansible_ssh_private_key_file='/Users/pezhang/test/.vagrant/machines/default/virtualbox/private_key'
  • 但是Failed to connect to the host via ssh: ssh: connect to host 127.0.0.1 port 2233: Connection refused

解决步骤

  • Q1:为什么Connection refused ?
  • A1: ansible在本机尝试登陆到vagrant的虚拟机失败。我考虑可能是密码或者身份验证有问题。先考虑一下整个登陆过程:

    首先A要想登陆到B,

    • 要么A有B的登陆密码。
    • 要么A将自己的公钥配到了B的authorized_keys,然后带着对应的私钥登录

  • Q2:那么ansible登录vagrant采用的是什么方式呢?
  • A2:采用的是配置公钥私钥的方式。进入vagrant可以看.ssh文件夹中拥有一个authorized_keys里面正好配置了一个公钥。而且我们在配置ansible的host的时候还配置了一个私钥文件。因此正好符合免密码登陆。首先vagrant生成一个私钥放在我们的.vagrant/machines/default/virtualbox/private_key然后将对应的公钥放入到authorized_keys中这样就可以正常登陆了。

  • Q3:那么密码既然没有问题那么到底是哪里出现问题?
  • A3:在网上查资料的时候突然看到了ssh service。那么说明处理所有ssh事物的是一个ssh service,并且ssh service有个默认的启动端口22,就去修改了ansible inventory的文件将ansible_ssh_port=2257改成了22。发现任然失败。

  • Q4:那么为什么失败还是报错一样?
  • A4:认真看报错信息发现:Failed to connect to the host via ssh: ssh: connect to host 127.0.0.1 port 22:是登录到localhost的22端口失败。首先我们应该是去找vm的22端口而不是本机的端口。说明我们connect的对象一开始就是错的。

  • Q5:那么我们该如何connect vm呢?我不知道他的IP
  • A5:我猜想可以使用private network将vm的网络调整到和local在同一个网络就可以访问了,修改inventory文件slave_service ansible_ssh_host=192.168.33.10 ansible_ssh_port=22 ansible_ssh_user='vagrant' ansible_ssh_private_key_file='/Users/pezhang/test/.vagrant/machines/default/virtualbox/private_key
    -但是仍然出错Add correct host key in /Users/pezhang/.ssh/known_hosts to get rid of this message.\r\nOffending ECDSA key in /Users/pezhang/.ssh/known_hosts:8\r\nECDSA host key for 192.168.33.10 has changed and you have requested strict checking

  • Q6:那么为什么又会出错明明从ip到端口都没有错啊?
  • A6:错误提示到了我本机的.ssh文件,我猜测一定是主机使用了自己的私钥登录而不是配置的私钥,因为错误提示中已经访问到了我本机的~/.ssh文件。一旦这样一定会导致公钥私钥不匹配。

  • Q7:那么如何才能强制ssh的时候使用给定的私钥文件呢?
  • A7:正常情况一旦我们访问其他域名一定导致要带上local的私钥,因此这也就解释了官网使用的127.0.0.1,我们还是使用ansible_ssh_host=127.0.0.1,然后能访问到vm的22端口即可。因此我使用了vagrant config.vm.network "forwarded_port", guest: 22, host: 2223然后修改ansible_ssh_port=2223发现链接成功。

  • Q8:那么为什么这样能成功,ssh的机制到底是什么?
  • A8:我想过程可能是这样的:每台机器的ssh service都默认启动在22端口,所以当你要ssh到一台机器上的时候,就是向某台机器的22端口发送请求。我们链接vm也是向vm上的22端口发送请求,我们把vm的22端口映射到本机的2223端口,直接向本机的2223端口发送请求就是vm的22端口在处理我们的ssh请求所以就可以成功了

但是其实我还有最后一个问题 为啥登录到127.0.0.1:2223端口就可以使用这里/Users/pezhang/test/.vagrant/machines/default/virtualbox/private_key的私钥,而访问其他域名就使用的是我.ssh的私钥?

反思

  • 遇到问题没有考虑去了解相应的知识然后再去解决,每次都是删除重试,然后某一次恰巧成功了就以为自己成功了,下次再失败都不知道噶如何解决

action

  • 要求自己以后每个问题解决了必须说明为什么这种方式能够work。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,980评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,422评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,130评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,553评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,408评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,326评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,720评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,373评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,678评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,722评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,486评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,335评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,738评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,009评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,283评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,692评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,893评论 2 335

推荐阅读更多精彩内容