[英]ssh: connect to host github.com port 22: Network is unreachable after copying VM to another host machine
I have just copied my Vagrant VM from one host machine to another. 我刚刚将Vagrant VM从一台主机复制到另一台主机。 Both machines are running Windows 7.
两台机器都运行Windows 7。
One the machine I copied the VM to I get the following error when attempting to access Github. 尝试访问Github时,我将VM复制到的机器上出现以下错误。
The repo definitely exists and I have the exact same Git config on the original machine. 该仓库肯定存在,并且我在原始机器上具有完全相同的Git配置。 Why would this happen?
为什么会这样? The top SO answer for this error has no effect for me.
此错误的最佳答案对我没有影响。
[vagrant@localhost /var/www/wrestlemaniamainevent]# git remote -v
origin git@github.com:crmpicco/wrestlemaniamainevent.git (fetch)
origin git@github.com:crmpicco/wrestlemaniamainevent.git (push)
[vagrant@localhost /var/www/wrestlemaniamainevent]# git fetch origin
ssh: connect to host github.com port 22: Network is unreachable
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
I can ping Github and when I change the URLs to https, I get this: 我可以ping Github,当我将URL更改为https时,得到以下信息:
[vagrant@localhost /var/www/wrestlemaniamainevent]# ping github.com
PING github.com (192.30.252.129) 56(84) bytes of data.
64 bytes from 192.30.252.129: icmp_seq=23 ttl=51 time=112 ms
64 bytes from 192.30.252.129: icmp_seq=24 ttl=51 time=110 ms
64 bytes from 192.30.252.129: icmp_seq=25 ttl=51 time=112 ms
64 bytes from 192.30.252.129: icmp_seq=26 ttl=51 time=111 ms
64 bytes from 192.30.252.129: icmp_seq=27 ttl=51 time=112 ms
^C
--- github.com ping statistics ---
27 packets transmitted, 5 received, 81% packet loss, time 26010ms
rtt min/avg/max/mdev = 110.904/111.957/112.869/0.756 ms
[vagrant@localhost /var/www/wrestlemaniamainevent]# git fetch origin
fatal: unable to access 'https://github.com/crmpicco/wrestlemaniamainevent.git/': Failed connect to github.com:443; Network is unreachable
My Vagrantfile 我的流浪档案
unless Vagrant.has_plugin?("vagrant-host-shell")
raise 'vagrant-host-shell plugin is not installed!'
end
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"
PRIVATE_NETWORK_IP = "10.0.0.200"
SERVER_NAME = "crmpicco.dev"
nfs_setting = RUBY_PLATFORM =~ /darwin/ || RUBY_PLATFORM =~ /linux/
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
# Disable automatic box update checking. If you disable this, then
# boxes will only be checked for updates when the user runs
# `vagrant box outdated`. This is not recommended.
# config.vm.box_check_update = false
config.ssh.forward_agent = true
config.vm.define "local", primary: true do |local|
nfs_setting = RUBY_PLATFORM =~ /darwin/ || RUBY_PLATFORM =~ /linux/
local.vm.network :forwarded_port, guest:4444, host:4444
local.vm.network :private_network, ip: PRIVATE_NETWORK_IP
local.vm.box = "crmpicco-centos7"
local.vm.box_url = "http://crmpicco.com/boxes/crmpicco.box"
# If you want to keep your code local and mount onto your VM, uncomment this.
#
# local.vm.synced_folder "./../www", "/var/www", id: "vagrant-root" , :nfs => nfs_setting,
# mount_options: ["sync,rsize=32768,wsize=32768,rw,proto=tcp"]
local.vm.provider :virtualbox do |v|
v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
v.customize ["modifyvm", :id, "--memory", 3072]
v.customize ["modifyvm", :id, "--cpus", 2]
v.customize ["modifyvm", :id, "--name", SERVER_NAME]
end
end
# If you want to keep your code local and mount onto your VM, comment this whole section
if nfs_setting
config.vm.provision :host_shell do |host_shell|
host_shell.inline = 'mkdir -p /Users/Shared/crmpicco'
end
config.vm.provision :host_shell, run: "always" do |host_shell|
host_shell.inline = "echo 'Waiting for NFS to be available, it can take a while'"
end
config.vm.provision :host_shell, run: "always" do |host_shell|
host_shell.inline = "sleep 30"
end
config.vm.provision :host_shell, run: "always" do |host_shell|
host_shell.inline = "mount -t nfs -o 'sync,rsize=32768,wsize=32768,rw' #{PRIVATE_NETWORK_IP}:/var/www/current /Users/Shared/crmpicco"
end
end
end
First , did you verify its not a network issue from the new host, can you ping github from the vm on the new host ? 首先 ,您是否验证了它不是来自新主机的网络问题,可以从新主机上的vm ping github吗?
Second , if ssh has an issue (and you're not much of a network guy like me - it could be firewall issue on the new host ...), you can change to use the https version 其次 ,如果ssh有问题(并且您不是像我这样的网络专家,它可能是新主机上的防火墙问题...),则可以更改为使用https版本
run `git config --local -e`
you should have a section 你应该有一节
[remote "origin"]
url = git@github.com:crmpicco/wrestlemaniamainevent.git
you can change that to 您可以将其更改为
[remote "origin"]
url = https://github.com/crmpicco/wrestlemaniamainevent.git
Third , make sure vagrant is same version on both host (specially if one host runs vagrant 1.6 and the other 1.7), virtual box should be ok if different but do update the GuestAdditions if you have different version with virtual box. 第三 ,确保两台主机上的vagrant版本相同(特别是如果一台主机运行vagrant 1.6而另一台主机运行1.7),则如果虚拟盒不同,则虚拟盒应该可以,但如果您使用虚拟盒的版本不同,则请更新GuestAdditions。
I resolved this issue by creating a new Virtual Box Host-Only Adapter in the Virtualbox settings, here: 我通过在以下Virtualbox设置中创建一个新的Virtual Box-Only Only Adapter解决了此问题:
The original one wasn't recognised, so I had to create a new one. 原始的未被识别,因此我不得不创建一个新的。
Secondly, as FredericHenri pointed out below - on my original host (Win 7 PC) I was running Virtualbox 4.3.12, whereas on the second host (Win 7 laptop) I was running Virtualbox 4.3.16 - so I downgraded the second host too and this resolved the issue. 其次,正如FredericHenri在下面指出的那样-在我的原始主机(Win 7 PC)上,我正在运行Virtualbox 4.3.12,而在第二台主机(Win 7笔记本电脑)上,我正在运行Virtualbox 4.3.16-所以我也降级了第二台主机。这样就解决了问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.