2014-03-12 44 views
6

我的MySQL客戶端(Sequel Pro)設置爲通過SSH連接到流浪漢。我設置在我~/.ssh/config文件中的以下內容:使用`vagrant ssh`後的流浪SSH隧道

Host vagrant 
    HostName 127.0.0.1 
    CheckHostIP no 
    Port 2222 
    User vagrant 
    IdentityFile ~/.vagrant.d/insecure_private_key 

一切工作正常,如果我沒有運行vagrant ssh。但是,一旦我用該命令登錄到Vagrant框中,Sequel Pro就無法再通過SSH連接 - 它只是說「SSH隧道已意外關閉」。所以我必須先運行vagrant reload,然後才能連接到MySQL服務器。

有誰知道如何解決這個問題?

回答

12

我通過使用端口轉發而不是SSH隧道來解決此問題。添加以下到Vagrantfile

config.vm.network :forwarded_port, guest: 3306, host: 8306 

然後經由端口8306連接到MySQL。

+0

這是唯一的解決方案,在我運行el capitan的mac上工作。我已經將權限添加到mysql;刪除了'127.0.0.1'的'known_hosts'條目+重新添加;編輯'my.cnf'文件進行各種更改等等。重要的是,這似乎是正確的解決方案。 – wired00

3

我有類似的問題。我掙扎了整整一天。我甚至通過了Jeffrey Way的 Vagrant and Sequel Pro。仍然有問題。我甚至改變了Vagrant文​​件中的轉發端口號並盡一切可能。但是,以下挽救了我的生命。

當我做了比我看見

default: 22 => 2200 (adapter 1) 

但是,我所做的一切建立在續集職業方面,我曾寫過SSH PORT: 2222 當是無業遊民重裝我這樣做是基於從上面的鏈接視頻。 但只要我更改爲我看到的號碼vagrant reload,它就要求我驗證。我確實選擇了「是」。 而且它確實已經連接。經過一天的奮鬥,結局會很愉快。它爲未來的讀者,希望有人在某個地方不會因爲這個原因花一天像我一樣。 ;)

+0

出於某種原因,我把它設置爲端口2222,我注意到在config.yaml文件中它指向22,我在後續專業設置中將其更改爲端口22,然後將其設置爲我的private_key文件在.vagrant /機器/默認/ virtualbox /文件夾 – Brad

16

我有同樣的問題,它竟然是我的known_hosts文件中的舊密鑰。

所以,我所做的:

$ vi ~/.ssh/known_hosts 

奔赴一線與127.0.0.1:2200就可以了,然後做命令dd刪除線。
:x保存,和巴姆鮑勃的舅舅。連接授予,萬歲Jambi。

我希望能救一個人一些悲傷。乾杯。

+0

這爲我做了詭計!謝謝!還要注意,如果你的vagrantfile指定了一個':private_network'的IP地址,你也必須從'known_hosts'中刪除該行。 「bam bob's yer叔叔」 - 喜歡那個。哈哈。 – ctlockey

1

嘗試從流浪項目文件夾加載另一個密鑰
例如, 。{vagrant_project} /流浪/設備/默認/的virtualbox/PRIVATE_KEY

0

除了上述之外,也可能是以下問題之一:

  • 的 「insecure_private_key」 僅用於當箱是第一次提出。除非你禁用了該功能(insert_key = false),否則vagrant會用隨機生成的密鑰替換該密鑰,並保存在該密鑰中。流浪者/機/ {計算機名}/{的providerName}/PRIVATE_KEY

    您可以使用該密鑰在ssh_config中

  • 你的MySQL設置正在做的事情不同,如果連接是否來自本地主機而不是從「外部」 IP地址。