【问题标题】:Copying file from Vagrant-VM to host failed... connect to host 127.0.0.1 port 2222: Connection refused将文件从 Vagrant-VM 复制到主机失败...连接到主机 127.0.0.1 端口 2222:连接被拒绝
【发布时间】:2017-11-19 06:28:33
【问题描述】:

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

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

但它给了我这个错误 ssh: connect to host 127.0.0.1 port 2222: Connection denied

如果我不提端口,就这样运行

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 

【问题讨论】:

标签: linux vagrant virtualbox


【解决方案1】:

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

** 更正后 - 如果您有阻塞,请检查 iptables 中的端口是否打开,并检查 sshd 是否正在侦听此端口:

netstat -l

second - 更好地使用 src 和 dst:

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

(注意最后的.表示复制到本地文件夹)

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

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

【讨论】:

  • 是的,它说端口 222 而不是 22,抱歉我的错误,我也在使用 .太
  • 运行 netstat -l 看不到端口 2222 但有一个端口 *:ssh
  • 我认为 ssh 的监听端口设置为 2222,因为如果我运行 vagrant ssh-config。我看到端口设置为 2222 HostName : 127.0.0.1 UserName : Vagrant Port : 2222 。 .
【解决方案2】:

当您运行 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

【讨论】:

    【解决方案3】:

    如果您的 vagrant VM 正在您的主机上运行(也就是只涉及一台计算机),您可以通过将文件放在 vagrant 内的“同步文件夹”中来传输文件。

    当 vagrant 配置虚拟机时,默认情况下,它会将 /vagrant 文件夹链接到 vagrant 文件所在的任何文件夹。通过链接,我的意思是虚拟机上的 /vagrant 文件夹包含所有相同的东西作为主机上的Vagrantfile 文件夹。将任何文件从任一机器复制到该文件夹​​将使这些文件在两台机器上都可用。

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

    【讨论】:

      猜你喜欢
      • 2014-05-21
      • 2015-04-29
      • 2017-01-19
      • 2013-06-24
      • 1970-01-01
      • 1970-01-01
      • 2015-02-01
      • 2018-10-15
      • 2018-09-21
      相关资源
      最近更新 更多