用ssh免密码以root身份登陆vagrant虚拟机

原来登陆vagrant虚拟机都是用vagrant ssh VM_name,但是在自己虚拟机上,只是测试使用,为了方便想直接以root身份登陆而不是vagrant身份。

主机:mac os10.12.4
虚拟机: Ubuntu 14.04

下面是实现主机到虚拟机实现root免密码登陆:
1 sudo vim /etc/hosts,在里面添加:VM_ip VM_name
2 把主机里的公钥拷贝到共享文件夹:cp ~/.ssh/id_rsa.pub ~/vagrant/id_rsa.pub
3 登陆到虚拟机内,执行下面的命令:

//切换到root身份,第一次登陆需要执行sudo passwd设置root密码
su
//把公钥追加到虚拟机的认证文件中
cat /vagrant/id_rsa.pub > /root/.ssh/authorized_keys
//设置认证文件的访问权限
chmod 644 /root/.ssh/authorized_keys
//设置ssh允许无密码登陆
vim /etc/ssh/sshd_config
//注释掉PermitEmptyPasswords no,添加PermitRootLogin yes
![ubuntu1的副本.png](http://upload-images.jianshu.io/upload_images/5276305-dddb4d144a1a204c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/750)
//重启ssh服务,退出虚拟机,回到zhuji
sudo service ssh restart
exit
//可以愉快的登陆啦!
ssh root@VM_name/ssh root@VM_ip

同样的原理可以实现从一台虚拟机通过ssh登陆到其他虚拟机,不懂可以联系我。
主要有几个点需要注意:

  • 通过配置hosts文件,来实现域名到ip的映射,就是把后面的名字解析成前面的IP。
  • ssh的配置文件sshd_config修改,修改完了要重启ssh服务。
  • 要想通过主机A访问主机B,需要把A的public_key添加到B的authorized_keys表中,加完记得给它读的权限,这样只能A访问B。
  • 如果是通过root访问,是添加public_key到/root/.ssh/authorized_keys中,通过其他用户访问,就添加到~/.ssh/authorized_keys。

你可能感兴趣的:(用ssh免密码以root身份登陆vagrant虚拟机)