ubuntu - 无法将文件从本地机器 scp 到 vagrant

标签 ubuntu vagrant

我正在尝试将文件从我的机器桌面 scp 到我的 vagrant box 中,但我似乎一直遇到这个错误。

ssh: connect to host 127.0.0.1 port 22: Connection refused
lost connection

我查看了我的 vagrant 文件并找到了这一行:

 Create a forwarded port mapping which allows access to a specific port
# within the machine from a port on the host machine. In the example below,
# accessing "localhost:8080" will access port 80 on the guest machine.
 config.vm.network "forwarded_port", guest: 80, host: 8080

我已经尝试运行这些命令并分别得到以下错误:

scp -P 80 nginx.conf xxxxx@127.0.0.1:/etc/nginx/nginx.conf
ssh: connect to host 127.0.0.1 port 80: Connection refused
lost connection

scp -P 8080 nginx.conf xxxxx@127.0.0.1:/etc/nginx/nginx.conf
ssh_exchange_identification: Connection closed by remote host
lost connection

我试过运行这些命令,但它仍然不起作用。

sudo apt-get install openssh-client
sudo apt-get install openssh-server

如有任何帮助,我们将不胜感激。

我也在 askubuntu.com 上问过这个问题

最佳答案

默认情况下,虚拟机上的 ssh 服务器可能会监听端口 22,而 vagrant 会将其转发到主机上的端口 2222。

所以你应该能够做到:

scp -P 2222 nginx.conf xxxxx@127.0.0.1:/etc/nginx/nginx.conf

您可以使用您找到的端口转发选项来更改它,但是您需要相应地在 guest 上设置您的 ssh 服务器(因此如果 ssh 守护程序没有监听它,转发端口 80 不会做太多事情)。

另一种使 guest 从外部可见的方法是使用公共(public)网络配置 - 这样它就可以从网络上的 DHCP 服务器获取 IP 地址(就像连接一台新物理机一样),然后可以通过这个地址访问它。您可以在您的 Vagrantfile 中执行此操作:

config.vm.network "public_network"

关于ubuntu - 无法将文件从本地机器 scp 到 vagrant,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24941237/

相关文章:

apache - 403 禁止 : You don't have permission to access this resource. Apache/2.4.29 (Ubuntu) 服务器端口 443

ubuntu - SASS 监视整个根

terminal - 尝试启动 Virtual Box 时如何修复这些错误?

node.js - 在 Vagrant 中安装 Node、NPM(然后全局安装 Grunt 和 Bower)

php - 从 Vagrant 中的 Chef Recipe 运行 PHP 脚本时 MySQL 不工作

vagrant - 无法通过本地浏览器访问本地 vagrant virtualbox 中的 jupyter notebook

mongodb - 为什么默认的 mongodb docker 实例不安全?

wordpress - 使用 apt-get 安装 Web 应用程序的实例

linux - 添加从 RPM 移植的 pkg 后,JFrog Artifactory 和 MergeList/var/lib/apt/lists "(NewVersion2)"问题

networking - Cloudera Hadoop 在 EC2 上使用 Vagrant - 如何设置主机、IP 和网络?