vagrant root 登录虚拟机
这个问题本来觉得是个特别简单的问题,昨天弄的时候折腾了半晚上。所以打算记录下过程,主要也被网上的各种信息误导了。
1
先看下我这vagrant配置信息
Vagrant.configure("2") do |config|
config.vm.box = "base"
config.vm.box_check_update = false
config.vm.network "forwarded_port", guest: 80, host: 8080
config.vm.network "private_network", ip: "192.168.0.1"
config.vm.synced_folder "/data/www", "/data/www"
# config.vm.provision "shell", inline: <<-SHELL
# apt-get update
# apt-get install -y apache2
# SHELL
end
发现没有登录信息,然后网上查了下资料说是默认的登录用户名是vagrant,密码一样。就像下面。
config.ssh.username = "vagrant"
config.ssh.password = "vagrant"
配置上上面的信息然后 vagrant ssh登录,发现登录正常没有问题。修改root的密码。
sudo -s
passwd
改完之后按照网上信息修改
vim /etc/ssh/sshd_config
PermitRootLogin prohibit-password
改为
PermitRootLogin yes
重启ssh服务
service sshd restart
退出,修改vagrant登录信息
config.ssh.username = "root"
config.ssh.password = "密码"
然后
vagrant ssh
提示
root@127.0.0.1: Permission denied (publickey).
不允许登录。一直没搞明白。后来又仔细看了下
/etc/ssh/sshd_config
发现有个关于密码的配置
PasswordAuthentication no
意思应该是密码授权,打开这个配置试试
PasswordAuthentication yes
记着重启服务
service sshd restart
然后改配置用户名
config.ssh.username = "root"
config.ssh.password = "密码"
这次看着是对了,提示输入root密码,输入完之后,就可以直接登录了。
2
等等,我不是配置密码了么?为什么还提示我输入密码
config.ssh.password = "密码"
换成 vagrant 用户名,试着注释掉密码配置,照样正常登录。在换成root用户名,注释掉密码配置,提示输入密码,说明密码登录的配置没有实际意义,配不配置都需要手动输入密码。
但是,vagrant用户为什么可以不需要密码直接登录,可能vagrant默认是秘钥登录的。使用vagrant账号登录看看vagrant的秘钥登录配置。
vim ~/.ssh/authorized_keys
果然有秘钥配饰
JbDoShF6plkIvZfV1ol3OMGYRtG8V/fYOCgfv9VBHmBVda+yIuybtD vagrant
证实了我们的猜测,vagrant默认是秘钥登录,密码配置没有任何意义。
那我们怎么将我们的root用户也改为秘钥登录呢?
下面我们看下配置步骤
首先使用 root输密码登录
vim /etc/ssh/sshd_config
打开两个关于秘钥的配置
RSAAuthentication yes
PubkeyAuthentication yes
配置公钥
vim ~/.ssh/authorized_keys
将自己的公钥添加到这里。
重启服务
service sshd restart
exit
退出虚拟机
修改vagrant配置数据,注释密码,加上私钥地址,
config.ssh.username = "root"
#config.ssh.password = "vagrant"
config.ssh.private_key_path = "/Users/XXX/.ssh/id_rsa"
不出意外,就可以跟vagrant用户一样免密登录了。
有时候会提示输入私钥密码,说明没有找到私钥地址,做下添加私钥的操作就可以了。
sudo ssh-add -K ~/.ssh/id_rsa
是不是就可以秘钥免密登录了???
vagrant root 登录虚拟机的更多相关文章
- Vagrant 入门 - 启动 vagrant 及 通过 ssh 登录虚拟机
原文地址 在终端运行 vagrant up 命令即可启动 Vagrant 环境: $ vagrant up 不到一分钟,命令就会执行完毕,运行 Ubuntu 的虚拟机会启动成功.Vagrant 运行虚 ...
- WIN10 vagrant和virtualbox虚拟机和一键搭建lnmp环境配置thinkphp虚拟主机
版本:win10系统 virtualbox:5.1.26 vagrant :1.9.7 centos 7.0 xshell/git 首先下载好对应版本的软件 配置vagrant和virtualbox ...
- centos root登录password 忘记解决的方法
Centos系统 登陆root忘记password 解决方式: (1)开机启动系统,在进入linux系统之前按键Esc 进入例如以下界面:(须要注意:Centos是安装在虚拟机里面的话,须要将鼠标点进 ...
- linux自动以root登录,并自动启动用户程序的设置方法
系统自动以root登录,并自动启动用户程序的设置方法 第一步:删除root用户 vi /etc/passwd 该文件的第一行:root:X:0:0:root:/root:/bin/bash,只需要把第 ...
- Ubuntu 12.04 添加新用户并启用root登录
启动root sudo passwd 输入密码 输入root 新密码并重复 su 切换root 添加用户比如hduser 修改密码hduserchmod u+w /etc/sudoersvi sudo ...
- 配置sshd_config中的PermitRootLogin设置root登录或者禁止root登录
在etc的sshd_config文件中,默认有PermitRootLogin no的配置,这个的意思是禁止root用户登录,如果想要允许root登录,需要su root用户到sshd_config下进 ...
- Ubuntu 12.04 root默认密码? 如何使用root登录?
在安装Ubuntu 12.04时并没有设置root的密码,登录的时候也没有使用root账户.当我们使用root权限时,一般都使用sudo命令进行.那么当我们安装完毕Ubuntu 12.04时,root ...
- Ubuntu下怎样切换到ROOT登录
原文:http://james23dier.iteye.com/blog/721246 近期一直在学习linux,选择ubuntu作为联系的操作系统.然后一直发现自己所创建的用户和root用户不是一个 ...
- LINUX服务器下用root登录ftp
因为安全方面的原因,root用户是默认不能登录ftp服务的. 如果一定要用root登录,则: 1.删除或注释/etc/vsftpd.ftpusers中的root 2.删除或注释/etc/vsftpd. ...
随机推荐
- PostgreSQL查看版本信息
1.查看客户端版本 psql --version 2.查看服务器端版本 2.1 查看详细信息 select version(); 2.2 查看版本信息 show server_version; 2.2 ...
- Python之pygame学习绘制文字制作滚动文字
pygame绘制文字 ✕ 今天来学习绘制文本内容,毕竟游戏中还是需要文字对玩家提示一些有用的信息. 字体常用的不是很多,在pygame中大多用于提示文字,或者记录分数等事件. 字体绘制基本分为以下几个 ...
- 关于解决'\u'开头的字符串转中文的方法
如果字符串是”\u70ed\u95e8\u94ed\u6587\u63a8\u8350”这种形式的字符串: python3的解决办法:字符串.encode(‘utf-8’).decode(‘unico ...
- Docker部署OpenProject
效果如下: 部署教程: 下载镜像: docker pull openproject/community: Install OpenProject with Docker Docker is a way ...
- jsch连接sftp后连接未释放掉问题排查
项目中通过jsch中的sftp实现上传下载文件.在压测过程中,由于调用到sftp,下载文件不存在时,系统不断抛出异常,内存飙升,逐渐把swap区也占满,通过top监控未发现占用内存的进程,通过查找ss ...
- 服务器端实时推送技术之SseEmitter的用法
这是SpringMVC提供的一种技术,可以实现服务端向客户端实时推送数据.用法非常简单,只需要在Controller提供一个接口,创建并返回SseEmitter对象,发送数据可以在另一个接口调用其se ...
- 测试一下windowsLiveWriter
一个是看看这个东西能不能发布出博客,还有一个就是准备开始写博客了,所以随便写个作为开始吧,我不想多说什么目标啊,什么的,所以就这一句简单的一句话就够了.
- 如何切换svn的登陆账号?
如何切换svn的登陆账号? 听语音 原创 | 浏览:68661 | 更新:2017-10-06 09:09 1 2 3 4 5 6 分步阅读 对于程序员来说,svn使用的比较广泛,平时用来更新或者是提 ...
- python设置socket的超时时间(可能使用locust压测千级并发的时候要用到,先记录在此)
在使用urllib或者urllib2时,有可能会等半天资源都下载不下来,可以通过设置socket的超时时间,来控制下载内容时的等待时间. 如下python代码 import socket timeou ...
- Spring Cloud API网关服务 5.2
为什么需要API网关 通过前面内容的学习,我们已经可以构建一个简单的微服务架构系统.这个系统可以使用Spring Boot实现微服务的开发,使用Spring Cloud Eureka实现注册中心以及服 ...