首页 > 代码库 > 如何设置vagrant的共享文件夹方式为sshfs
如何设置vagrant的共享文件夹方式为sshfs
默认的vagrant虚拟机里的共享文件夹速度是很慢的,比如在一个有很多代码的项目中生成tags:ctags -Rf .tags时,或者用ag来找某一个字符串:ag hello_world时,就会很慢。改为nfs速度会提升些,但绝没有sshfs的方式快。
使用sshfs共享的话,有两种方法,一种是最简单最快的,就是安装vagrant的sshfs插件:http://github.com/fabiokr/vagrant-sshfs
不过,我试这方法时因为网速原因,安装不了,所以就自己摸索出第二种比较麻烦的方法:
首先在你的vagrant虚拟机中安装sshfs:ubuntu:sudo apt-get install sshfs
然后运行以下命令:
sudo chmod 0644 /etc/fuse.conf
sudo echo ‘user_allow_other‘ >> /etc/fuse.conf
然后在物理主机中,将AuthorizedKeysFile .ssh/authorized_keys和RSAAuthentication以及PubkeyAuthentication在 /etc/ssh/sshd_config 所在的行中取消注释(mac的sshd_config在/etc下)
然后重启sshd服务:service ssh restart (mac中不需要重启)
接着,在物理主机中运行:
cd ~/.ssh
ssh-keygen -t rsa -N ""
cat id_rsa.pub >> authorized_keys
最后,打开vagrant的Vagrantfile,在最后加上:
Vagrant.configure("2") do |config| config.vm.provision "shell" do |s| s.inline = "killall ssh-agent &> /dev/null; echo" s.inline = "eval $(ssh-agent -s) &> /dev/null; echo" s.inline = "ssh-add /home/vagrant/.ssh/id_rsa &> /dev/null; echo" s.inline = "fusermount -u /home/vagrant/Code &> /dev/null; echo" s.inline = "sshfs -o allow_other wenzai@192.168.10.1:Code /home/vagrant/Code/ &> /dev/null; echo" end注意要将wenzai@192.168.10.1:Code /home/vagrant/Code/修改为自己机子对应的ip和要共享的文件夹吧
如何设置vagrant的共享文件夹方式为sshfs