我刚刚在我的 Mac 上安装了 VirtualBox,使用 Cloudera Hadoop 磁盘映像的“使用现有虚拟硬盘文件”创建了一个新的 Ubuntu 虚拟机。我可以启动并运行虚拟机,但是,我更喜欢从终端进行 ssh 访问。以下生成消息“连接到主机 127.0.0.1 端口 2222:连接被拒绝”:
ssh [email protected] -p 2222
我也尝试过 -p 22
我还尝试使用“cloudera”作为用户。我是否需要更改 VirtualBox 设置才能允许 SSH?
我还尝试在不使用 Cloudera 磁盘映像的情况下创建一个新的 Linux 虚拟机,并且我也可以通过 SSH 连接到该虚拟机。
答案1
我有一台安装了 VirtualBox 的 Mac。
所以这对我有用......
单击 cloudera 图像并单击设置 然后单击网络 -> 适配器 1(默认情况下已附加为 NAT) -> 高级 -> 端口转发 添加一个新条目(单击 + 添加),设置如下:
主机端口:1111,访客端口:22,将主机 IP 和访客 IP 留空
cmd
使用以下命令从 Mac shell 进行连接
ssh -p 1111 cloudera@localhost
在 Ubuntu 18.04 上,如有必要,另外安装 ssh(通常由未知的 cmd ssh 来表示先前的 cmd)并重新启动
sudo apt-get install openssh-server
答案2
维基百科说
在大多数计算机系统上,localhost 解析为 IP 地址 127.0.0.1
你的命令
ssh 根@127.0.0.1 -p 2222
尝试从 Mac 连接到您的 Mac,而不是连接到您的 VM。
尝试找到您的虚拟机的地址并相应地更改您的命令。
注意:如果您只想从 Mac 到 VM 进行 ssh,您可以向 VM 添加“仅主机”网络适配器。
`ifconfig -a`
vboxnet0
然后,在您的 ubuntu VM 中应该会显示与您可用于从 Mac 进行连接的关联IP 地址。
答案3
首先,确保您的虚拟机已关闭。然后右键单击虚拟机。然后转至设置 --> 网络 在附加到部分中,从下拉列表中选择桥接适配器。单击“确定”
现在打开 VM Open 终端并输入 sudo apt-get install openssh-server
现在输入 ifconfig (如果未安装,则必须使用 sudo apt install net-tools 安装它)执行此命令后,您将获得如下 IP 地址
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.54.375.20 netmask 255.255.128.0 broadcast 10.88.255.255
inet6 fe80::c5cc:cb0d:b02f:f7f6 prefixlen 64 scopeid 0x20<link>
ether 08:00:27:29:7c:4d txqueuelen 1000 (Ethernet)
RX packets 6560 bytes 7484338 (7.4 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2063 bytes 210479 (210.4 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
从(inet 10.54.375.20)获取IP地址,获取显示的地址。
现在在你的主机(你的电脑)中输入 ssh username@yourip (例如[电子邮件受保护]),系统会要求您输入虚拟机密码。进入后,您可以访问虚拟机命令行。
答案4
如果您仅使用提供的硬盘文件,这对我来说意味着您自己创建了虚拟机。新虚拟机的默认网络设置是“NAT”,因此您必须创建一个 NAT 规则,将主机的端口 22 路由到虚拟机的端口 22。
我不知道 MacOS,但在 Linux 下,你必须使用 > 1024 的端口。我通常使用以 10000 开头的端口和相应的服务端口。在您的情况下,我将进行 10022 -> 22 的端口映射。对于“主机”列中的条目,我使用 127.0.0.1 和访客端 0.0.0.0 作为地址。
您可以通过 VirtualBox Manager 中的“右键单击虚拟机”->“更改”->“网络”选项卡->“端口转发”进入菜单