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

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

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

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

使用在本机映射的2222端口,ssh vagrant@127.0.0.1 -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用户使用
在这里插入图片描述
这里使用了虚拟机映射出来的端口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 命令去编辑
在这里插入图片描述
修改完成后,重启sshd服务。

sudo systemctl restart sshd

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

root登录

账号密码登录,编辑/etc/ssh/sshd_config,将PermitRootLogin 的值修改为yes。,如需要修改,可以使用sudo passwd命令。root的默认密码是vagrant
在这里插入图片描述
修改完成后,重启sshd服务。

sudo systemctl restart sshd

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值