【问题标题】:ssh a vagrant box without 'vagrant ssh'ssh 一个没有 'vagrant ssh' 的 vagrant box
【发布时间】:2016-04-09 10:59:37
【问题描述】:

我使用

创建了一个新的 vagrant box
vagrant init ubuntu/trusty64
vagrant up

我想在不使用“vagrant ssh”的情况下通过 ssh 登录

盒子机的ifconfig给我的

eth0      Link encap:Ethernet  HWaddr 08:00:27:ca:3e:f9
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:feca:3ef9/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:254 errors:0 dropped:0 overruns:0 frame:0
          TX packets:187 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:26220 (26.2 KB)  TX bytes:22208 (22.2 KB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

我试过了

ssh vagrant@10.0.2.15

盒子上的“谁”给了

vagrant  pts/0        Jan  5 14:46 (10.0.2.2)

所以我尝试了

ssh vagrant@10.0.2.2

但都没有成功!

ping 对这个 ip 不起作用

【问题讨论】:

    标签: ubuntu ssh vagrant


    【解决方案1】:

    首先,您无法访问 NAT 网关后面的 IP。您需要使用 NAT 网关的 IP 地址和 vagrant 中的 ssh 默认转发端口为 2222 来访问服务器。你还需要告诉 ssh 它应该使用 vagrant 的不安全的私钥

    ssh -i ~/.vagrant.d/insecure_private_key -p 2222 vagrant@localhost
    

    vagrant ssh 命令旨在隐藏这种复杂性。

    如果您同时启动了多个 vagrant box,或者您明确选择了一个不同于 2222 的端口,则需要使用实际使用的端口。您可以使用以下方法找到:

    vagrant ssh-config
    

    【讨论】:

    • 你可以通过vagrant ssh-config获取端口,如果你有其他VM在运行,vagrant会关联一个不同的端口
    • @FrédéricHenri 我已经详细说明并添加了vagrant ssh-config。谢谢!
    • 您可以通过vagrant port --guest 22 获取映射到客户机上 SSH 端口 (22) 的主机端口。因此,您可以使命令更通用:ssh -i ~/.vagrant.d/insecure_private_key -p $(vagrant port --guest 22) vagrant@localhost
    • @AtesGoral 似乎是一个新功能。我有 vagrant-1.7.4,它没有 vagrant port 命令
    【解决方案2】:

    要永久创建主机别名,您可以在 ~/.ssh/config 中添加如下所示的条目:

    托管 my-vagrant-box 用户无业游民 主机名本地主机 端口 2222 IdentityFile /Users/atesgoral/Sandbox/my-vagrant-box/.vagrant/machines/default/virtualbox/private_key 身份只有是

    那么你可以简单地做:

    ssh my-vagrant-box
    

    要确定映射到来宾(Vagrant 框)上的 SSH 端口的主机端口:

    vagrant port --guest 22
    

    In this repo,你可以找到一个可以在 Vagrantfile 目录中运行的 shell 脚本。它将生成一个可以附加到 ~/.ssh/config 的主机条目:

    ./ssh-config.sh >> ~/.ssh/config
    

    【讨论】:

      【解决方案3】:

      我找到了解决办法

      在 Vagrantfile 中

      取消注释该行

      config.vm.network :private_network, ip: "192.168.33.10"
      

      然后你就可以使用 ssh 了

      ssh vagrant@192.168.33.10
      

      【讨论】:

      • 嗯,它是一个解决方案,但针对不同的问题。使用您最初的 Vagrnatfile,@hek2mgl 的解决方案是正确的。
      猜你喜欢
      • 2014-04-16
      • 1970-01-01
      • 2014-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多