原來登陸vagrant虛擬機(jī)都是用vagrant ssh VM_name,但是在自己虛擬機(jī)上,只是測(cè)試使用,為了方便想直接以root身份登陸而不是vagrant身份。
主機(jī):mac os10.12.4
虛擬機(jī): Ubuntu 14.04
下面是實(shí)現(xiàn)主機(jī)到虛擬機(jī)實(shí)現(xiàn)root免密碼登陸:
1 sudo vim /etc/hosts,在里面添加:VM_ip VM_name。
2 把主機(jī)里的公鑰拷貝到共享文件夾:cp ~/.ssh/id_rsa.pub ~/vagrant/id_rsa.pub
3 登陸到虛擬機(jī)內(nèi),執(zhí)行下面的命令:
//切換到root身份,第一次登陸需要執(zhí)行sudo passwd設(shè)置root密碼
su
//把公鑰追加到虛擬機(jī)的認(rèn)證文件中
cat /vagrant/id_rsa.pub > /root/.ssh/authorized_keys
//設(shè)置認(rèn)證文件的訪問權(quán)限
chmod 644 /root/.ssh/authorized_keys
//設(shè)置ssh允許無密碼登陸
vim /etc/ssh/sshd_config
//注釋掉PermitEmptyPasswords no,添加PermitRootLogin yes

//重啟ssh服務(wù),退出虛擬機(jī),回到zhuji
sudo service ssh restart
exit
//可以愉快的登陸啦!
ssh root@VM_name/ssh root@VM_ip
同樣的原理可以實(shí)現(xiàn)從一臺(tái)虛擬機(jī)通過ssh登陸到其他虛擬機(jī),不懂可以聯(lián)系我。
主要有幾個(gè)點(diǎn)需要注意:
- 通過配置hosts文件,來實(shí)現(xiàn)域名到ip的映射,就是把后面的名字解析成前面的IP。
- ssh的配置文件sshd_config修改,修改完了要重啟ssh服務(wù)。
- 要想通過主機(jī)A訪問主機(jī)B,需要把A的public_key添加到B的authorized_keys表中,加完記得給它讀的權(quán)限,這樣只能A訪問B。
- 如果是通過root訪問,是添加public_key到/root/.ssh/authorized_keys中,通過其他用戶訪問,就添加到~/.ssh/authorized_keys。