将文件从Vagrant-VM复制到主机失败...连接到主机127.0.0.1端口2222:连接被拒绝

时间:2017-06-16 13:00:57

标签: linux vagrant virtualbox

我想将文件从vagrant机器复制到我的主机上,这样做我正在使用这个命令

scp -P 2222 vagrant@127.0.0.1:/home/vagrant/pjsip-build/lib/armeabi-v7a/libyuv.so .

但它给了我这个错误ssh:连接到主机127.0.0.1端口2222:拒绝连接

如果我没有提到端口并且只是这样运行

scp vagrant@127.0.0.1:/home/vagrant/pjsip-build/lib/armeabi-v7a/libyuv.so

它给了我错误 scp:home / vagrant / pjsip-build / lib / armeabi-v7a / libyuv.so:没有这样的文件或目录

那么这里出了什么问题?如何将文件从客户端复制到主机。

修改  我的ssh配置就是这个

Host default
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile C:/Users/arfeen/.vagrant/machines/default/virtualbox/private_key
  IdentitiesOnly yes
  LogLevel FATAL

当我做流浪汉时我的端口转发就是这个

==> default: Preparing network interfaces based on configuration...

        default: Adapter 1: nat
    ==> default: Forwarding ports...
        default: 22 (guest) => 2222 (host) (adapter 1)s this 

3 个答案:

答案 0 :(得分:0)

第一个问题 - 你可能没有人在2222上监听。它不应该说端口22,因为P标志应该调用2222端口。

修正后的

** - 检查端口是否在iptables中打开如果你有阻塞并检查sshd正在监听这个端口:

netstat -l <​​/ p>

第二 - 更好地使用src和dst:

scp vagrant@127.0.0.1:/home/vagrant/pjsip-build/lib/armeabi-v7a/libyuv.so。

(注意。最后意味着复制到本地文件夹)

并确保127.0.0.1处的机器具有路径:/ home / vargant .... ect,并且用户vargant可以访问so文件。

我也无法理解为什么你使用127.0.0.1 - 因为这将是你自己的地址。除非你使用它来隐藏有问题的服务器的真实地址 - 或者本地卡被桥接,然后 - 你是否将机器上ssh的监听端口更改为2222?

答案 1 :(得分:0)

当你运行vagrant up时,它会给你一些指示(这是我自己的例子,端口会因你而异)

xxxx
==> jenkins: Setting the name of the VM: jenkins
==> jenkins: Fixed port collision for 22 => 2222. Now on port 2205.
xxxx
==> jenkins: Forwarding ports...
    jenkins: 22 (guest) => 2205 (host) (adapter 1)

在这种情况下,它在我的主机上的端口2205上运行ssh端口,因此我需要运行scp -P 2205 ....

您还可以通过运行`vagrant ssh-config``

来查看此信息
$ vagrant ssh-config
Host jenkins
  HostName 127.0.0.1
  User vagrant
  Port 2205
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile /Users/fhenri/.vagrant.d/insecure_private_key
  IdentitiesOnly yes
  LogLevel FATAL

答案 2 :(得分:0)

如果你的流浪汉VM在你的主机上运行(例如,只涉及一台计算机),你可以通过将文件放在&#34; Synced文件夹中来传输文件。在流浪者中。

当vagrant配置虚拟机时,默认情况下会将/vagrant文件夹链接到vagrant文​​件所在的任何文件夹。并且通过链接,我的意思是虚拟机上的/vagrant文件夹包含所有文件夹与主机上的Vagrantfile文件夹相同的内容。从任一计算机将任何文件复制到该文件夹​​将使这两个计算机上的文件可用。

通过编辑您的vagrant文​​件,您可以添加以这种方式同步的其他文件夹。您可以通过阅读有关此主题的流浪文档来了解更多信息:https://www.vagrantup.com/docs/synced-folders/