解决vagrant中的centos主机无法远程连接的问题

使用Vagrant快速搭建centos虚拟机
Vagrant网络配置

vagrant 完成虚拟机搭建,并配置好网络后,直接通过ssh [email protected] -p 22(这里使用自己配置的ip)登录虚拟机,

Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

使用在本机映射的2222端口,ssh [email protected] -p 2222 登录。

Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

xshell等工具也连接不上,花了点时间研究了一下,总结出以下两种可以解决方法。

这里的端口2222vagrant up的时候,vagrant 自动将虚拟机的 22 端口映射到的宿主机的2222 上,访问宿主机的2222 就是访问虚拟机的22端口

秘钥登录

默认无法通过用户名密码登录,只能使用秘钥登录。
首先在工作目录下查看ssh信息。

虚拟机映射出来的端口是 vagrant 生成的,可以通过 vagrant up时候的启动信息查看,也可以通过vagrant ssh-config 来查看映射的端口。

vagrant ssh-config
#Host default
#  HostName 127.0.0.1
#  User vagrant
#  Port 2222
#  UserKnownHostsFile /dev/null
#  StrictHostKeyChecking no
#  PasswordAuthentication no
#  IdentityFile /home/xingmu/vagrant/.vagrant/machines/default/virtualbox/private_key
#  IdentitiesOnly yes
#  LogLevel FATAL

IdentityFile 对应的就是ssh私钥地址,然后配置下私钥就可以了。
我这里使用的是 electerm,如下图所示,导入私钥即可愉快的使用了,如果是其他远程连接工具应该是差不多的。
解决vagrant中的centos主机无法远程连接的问题_第1张图片
这里使用了虚拟机映射出来的端口2222,也可以使用给虚拟机配置的ip地址,通过22端口登录。

账号密码登录

从官方站点下载的centos/7 这个 box 默认是关闭了账号密码登录的,通过vagrant ssh连接到虚拟机,然后去编辑/etc/ssh/sshd_config,将PasswordAuthentication 的值修改为yes

/etc/ssh/sshd_config 这个文件vagrant 用户是没有权限查看内容的,需要使用sudo vi /etc/ssh/sshd_config 命令去编辑
解决vagrant中的centos主机无法远程连接的问题_第2张图片
修改完成后,重启sshd服务。

sudo systemctl restart sshd

然后通过 ssh 去连接就可以成功了。vagrant默认密码和用户名相同,如需要修改,可以使用passwd命令。
在这里插入图片描述
再试一下直接连虚拟机,不走端口转发(需要给虚拟机IP地址)。
解决vagrant中的centos主机无法远程连接的问题_第3张图片
OK,没有问题,可以顺利的连接了!!

root登录

账号密码登录,编辑/etc/ssh/sshd_config,将PermitRootLogin 的值修改为yes。,如需要修改,可以使用sudo passwd命令。
解决vagrant中的centos主机无法远程连接的问题_第4张图片
修改完成后,重启sshd服务。

sudo systemctl restart sshd

然后就可以通过 root 登录了。

你可能感兴趣的:(vagrant)