ssh原理:html
ssh是一種專爲遠程登錄會話和其餘網絡服務提供安全性的協議,主要用於遠程登錄。linux
ssh採用公鑰加密,在遠程鏈接時,遠程主機接收到用戶的登陸請求,將本身的公鑰發送給用戶,用戶使用這個公鑰將登陸密碼加密後發送給遠程主機,遠程主機再用本身的私鑰解密,密碼正確則贊成用戶登陸。算法
可是,整個過程仍是存在一個問題,就是用戶並不知道,給本身發送公鑰的遠程主機是不是本身想要登陸的遠程主機,也就是說存在中間人攻擊,當第三方截獲了用發起的登陸請求後,可冒充遠程主機發送一個僞造的公鑰給用戶(SSH協議的公鑰是沒有證書中心公證的),因而接下來的整個過程就變成了用戶和第三方的通信,那麼第三方即可從用戶那兒獲取遠程主機的登陸密碼,而後再用這個密碼登陸遠程主機shell
因而ssh又加入了一項公鑰指紋的認證,在用戶第一次登陸遠程主機時,會收到這樣一段信息:windows
他的意思是,沒法確認遠程主機的真實性,但知道它的公鑰指紋,是否要繼續鏈接,這裏的公鑰指紋是採用RSA算法加密後,又作了一次md5加密:安全
一般,遠程主機會在本身的網站上貼出公鑰指紋,用戶能夠進行覈對,在確認後輸入yes,會讓你輸入登陸密碼,密碼正確就成功登陸了網絡
實驗環境:ssh
VM虛擬機(CentOS7,CentOS Server)網站
將CentOS7和CentOS Server的網絡適配器改成橋接模式,在橋接模式下,虛擬機相似於局域網中的一臺獨立主機,能夠訪問內網中的任何一臺機加密
在CentOS7和CentOS Server中輸入ip addr查看ip,發現ens33網卡沒有inet屬性,因而打開ens33網卡的配置文件:
vi /etc/sysconfig/network-scripts/ifcfg-ens33
將onboot=「no」改成「yes」(默認狀況下CentOS7是不啓用網卡的)
重啓網絡服務:sudo service network restart
此時用物理主機ping虛擬機IP能夠ping通:
兩臺虛擬機能夠相互ping通後,在CentOS7中安裝ssh:
yum install openssh-server -y
而後用命令ssh 主機名@CentOS Server_IP或者ssh CentOS Server_IP遠程登陸CentOS Server
固然還有一種推薦方式:能夠在windows下用Xshell訪問CentOS7或CentOS Server
參考文獻:
http://www.linuxidc.com/Linux/2016-03/129204.htm
http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html
http://www.linuxidc.com/Linux/2017-03/141333.htm