使用ssh連接VirtualBox虛擬機

使用SSH連接VirtualBox虛擬機

步驟:

  • 配置虛擬機網(wǎng)絡(luò)喷面,添加端口轉(zhuǎn)發(fā)規(guī)則
  • 測試服務(wù)器端ssh是否安裝
  • 測試遠程主機是否可以連接鹃栽;注意提示信息
  • 服務(wù)器安裝ssh
  • 配置服務(wù)器防火墻
  • 遠程主機生成密鑰對
  • 導(dǎo)入遠程主機公鑰至服務(wù)器(無密登錄)

1. 配置虛擬機網(wǎng)絡(luò)慨削,添加端口轉(zhuǎn)發(fā)規(guī)則

1.1 橋接模式

虛擬機的網(wǎng)絡(luò)就相當(dāng)于主機一樣并行存在灾搏,所以當(dāng)前主機要連接到路由器或交換機等設(shè)備疼鸟,以使兩個系統(tǒng)處于同一局域網(wǎng)失都。

1.2 網(wǎng)絡(luò)地址轉(zhuǎn)換NAT

NAT模式即虛擬機的網(wǎng)絡(luò)是完全依賴于物理主機的網(wǎng)絡(luò)柏蘑。此時兩個系統(tǒng)并不是處于同一局域網(wǎng),不能簡單的ping通粹庞;
但是可以設(shè)置Virtualbox在NAT模式(網(wǎng)絡(luò)地址轉(zhuǎn)換NAT)下的端口轉(zhuǎn)發(fā)規(guī)則咳焚,通過設(shè)置規(guī)則可使主機連接虛擬機。

設(shè)置 -> 網(wǎng)絡(luò) -> 網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT) -> 高級 -> 端口轉(zhuǎn)發(fā) -> 添加規(guī)則 :

  1. 名稱可隨便填寫庞溜,如ssh
  2. 主機IP可以不填革半,或者填寫127.0.0.1
  3. 主機端口隨意填寫一個不會產(chǎn)生沖突的端口,如2222
  4. 子系統(tǒng)端口可以不填,或者填寫子系統(tǒng)當(dāng)前IP地址
  5. 子系統(tǒng)端口如果是要進行ssh連接又官,則填寫22 ; ftp就填寫21

示例:

名稱 協(xié)議 主機IP 主機端口 子系統(tǒng)IP 子系統(tǒng)端口
ftp TCP 2121 21
ssh TCP 2222 22
http TCP 8080 80
mysql TCP 127.0.0.1 3306 10.0.2.15 3306
oracle TCP 1521 1521

參考:
http://reverland.bitbucket.org/VirtualBox_net.html
http://www.myhack58.com/Article/48/66/2014/46228.htm
設(shè)置兩個網(wǎng)卡延刘,一個NAT,一個橋接 http://my.oschina.net/dmdgeeker/blog/229044
centos7 虛擬機相互訪問的網(wǎng)卡設(shè)置
VirtualBox下虛擬機和主機內(nèi)網(wǎng)互通+虛擬機靜態(tài)IP的網(wǎng)絡(luò)配置
VirtualBox虛擬機網(wǎng)絡(luò)環(huán)境解析和搭建-NAT六敬、橋接碘赖、Host-Only、Internal外构、端口映射
A short guide to networking in Virtual Box with Oracle Linux inside

詳細介紹
http://www.cnblogs.com/adforce/archive/2013/10/11/3363373.html

2. 測試服務(wù)器端ssh是否安裝

測試是否安裝ssh:

ssh localhost 
//使用該命令后普泡,如果已經(jīng)安裝,會提示你是否接收服務(wù)器發(fā)給你的公鑰审编,并讓你輸入yes/no劫哼,此時輸入 yes 。這樣才能對你發(fā)給服務(wù)器的信息進行加密割笙。

3. 測試遠程主機是否可以連接

如果已經(jīng)安裝,則進行這一步眯亦。

測試是否可以使用SSH連接 :使用密碼登錄(設(shè)置好端口轉(zhuǎn)發(fā)后)

因為端口不是常規(guī)默認的伤溉,所以需要指定 port

如進行ssh連接則在shell中輸入:

$ ssh -p 2222 username@127.0.0.1
或?qū)⑸厦娴?127.0.0.1 改為localhost  

進行sftp連接(其端口與ssh是一樣的,因為它是ssh的一部分):

$ sftp -o port=2222 username@127.0.0.1 

由于SSH是使用非對稱密鑰來進行安全認證,所以在第一次與某主機通信時會提示你妻率,連接的主機是不是可靠的乱顾。
所謂"公鑰登錄",原理很簡單宫静,就是用戶將自己的公鑰儲存在遠程主機上走净。登錄的時候,遠程主機會向用戶發(fā)送一段隨機字符串孤里,用戶用自己的私鑰加密后伏伯,再發(fā)回來。遠程主機用事先儲存的公鑰進行解密捌袜,如果成功说搅,就證明用戶是可信的,直接允許登錄 shell虏等,不再要求密碼弄唧。

ftp連接:

$ ftp  host-name [port]
或 
$ ftp
ftp> open host-name [port] 

可能并不成功,不知是不是防火墻的問題霍衫,使用sftp就好了候引,更安全。

將上面的 username 改為自己的敦跌。

前提是虛擬機中的Linux安裝了ssh服務(wù)并開啟澄干,且關(guān)閉了防火墻(或添加了相應(yīng)規(guī)則)。

如果測試不成功則跳轉(zhuǎn)到第5節(jié)

4. 服務(wù)器安裝ssh

安裝ssh:

sudo apt-get install openssh-server 

啟動服務(wù):

sudo /etc/init.d/ssh start 

查看是否啟動:

ps -e | grep sshd 

配置防火墻

此時在遠程客戶端進行連接測試,如果可行

Linux 上安裝 ssh (Ubuntu & RedHat)

5. 配置服務(wù)器防火墻

5.1 配置動態(tài)防火墻firewalld

使用了動態(tài)防火墻:變更后無需重啟系統(tǒng)傻寂。它不能與靜態(tài)防火墻共存息尺。

可以選擇開啟某個端口,或完全關(guān)閉防火墻

配置好防火墻后疾掰,跳轉(zhuǎn)到第3節(jié)搂誉,進行遠程測試。

5.1.1 為服務(wù)器防火墻開啟22端口或開啟ssh服務(wù)

在CentOS7上默認是開啟了 ssh 服務(wù)的静檬。如果不行就試一下同時開啟端口炭懊。

firewall-cmd --permanent --add-port=22/tcp
或選擇
firewall-cmd --permanent  --add-service=ssh
然后重新加載防火墻
systemctl reload firewalld

查看是否已經(jīng)開啟:

firewall-cmd --list-all

在列出的信息中,查看port開頭的行是否包含 22 拂檩。

5.1.2 關(guān)閉服務(wù)器防火墻

查看防火墻狀態(tài):

systemctl status firewalld  

臨時關(guān)閉防火墻:

systemctl stop firewalld 

永久關(guān)閉防火墻:

systemctl disable firewalld  

打開防火墻:

systemctl enable firewalld   

注意需要root權(quán)限侮腹。

5.2 配置靜態(tài)防火墻 iptables (不必)

fedora,centos等稻励,基本都已經(jīng)使用動態(tài)防火墻(兩者不能共存)了父阻。此處是否有效未知。

關(guān)閉:

service iptables stop  

開啟:

service iptables start   

開機默認關(guān)閉防火墻:(即永久)

chkconfig iptables off  

開機默認開啟防火墻:

chkconfig iptables on  

fedora不可用
參考: http://my.oschina.net/u/217959/blog/38051

生成SSH key

SSH原理與運用(一):遠程登錄
SSH原理與運用(二):遠程操作與端口轉(zhuǎn)發(fā)
Asrchlinux wiki:
Secure Shell (簡體中文)
SSH keys (簡體中文)

6. 遠程主機生成密鑰對

這部分不大全面望抽。
公鑰是一串很長的字符加矛,為了便于肉眼比對和識別,所以有了指紋這東西煤篙,指紋位數(shù)更便于識別且與公鑰一一對應(yīng)斟览。

運行命令ssh-keygen采用rsa加密算法生成密鑰對

ssh-keygen -t rsa

生成密鑰對時,有一個選項要求你設(shè)置密碼passphrase辑奈,該密碼是用來保護你的私鑰的密碼苛茂。如果設(shè)置了則在使用私鑰時會要求你輸入這個密碼;一般不設(shè)置鸠窗,記不住【之后還可更改此密碼妓羊,使用ssh-keygen -p】。

生成后最好將私鑰進行備份稍计。另還有-C選項侍瑟,用于為指定注釋通常使用自己的郵件名作為注釋

-b bits選項 Specifies the number of bits in the key to create. For RSA keys, the minimum size is 1024 bits and the default is 2048 bits. Generally, 2048 bits is considered sufficient. DSA keys must be exactly 1024 bits

示例:為了安全考慮使用RSA加密并設(shè)置 -b 4096

$ ssh-keygen -t rsa -C "your_email@example.com" -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key
(/Users/your_user_directory/.ssh/id_rsa): 按回車鍵 (如果需要生成多對key丙猬,則輸入/home/users/.ssh/filename)
Enter passphrase (empty for no passphrase): 輸入密碼(一般不輸入密碼涨颜,直接回車)
Enter same passphrase again: 再次輸入密碼
...

# 查看公鑰文件中的內(nèi)容
$ cat ~/.ssh/id_rsa.pub
ssh-rsa "公鑰內(nèi)容" your_email@example.com

# 注意在其他地方導(dǎo)入公鑰時一定要將公鑰文件中的*全部內(nèi)容*都導(dǎo)入,包括末尾你的郵箱茧球。(郵箱可能是由 -C 指定的庭瑰??)

實際操作的一次示例:

[fan 16:10:57]~$ ssh-keygen -t rsa -C "Fan@outlook.com" -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/home/fan/.ssh/id_rsa): /home/fan/.ssh/FDGitHub_rsa
Enter passphrase (empty for no passphrase):  (不要密碼直接回車)
Enter same passphrase again: 
Your identification has been saved in /home/fan/.ssh/FDGitHub_rsa.
Your public key has been saved in /home/fan/.ssh/FDGitHub_rsa.pub.
The key fingerprint is:
SHA256:GcK7ORvFzH6fzA7qPmnzBr1DOWho5cCVgIpLkh6VGb8 Fan@outlook.com
The key's randomart image is:
+---[RSA 4096]----+
|   .+... .       |
|   +o.  o        |
| o.. oo..        |
|+o.   +*.o       |
|     .=..+oo     |
|       +=o+= .   |
|      .++=.o*    |
+----[SHA256]-----+

指紋的用處之一是在使用SSH第一連接到某主機時抢埋,會返回該主機使用的公鑰的指紋讓你識別弹灭。示例:

The authenticity of host '某主機名' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)?

簡單介紹一下:

公鑰用于給別人用來加密文件督暂。公鑰就是一把鎖,你把鎖給別人穷吮,他用鎖鎖住東西后逻翁,除了你自己外其他人是沒有鑰匙(私鑰)的,都無法打開捡鱼。配對的私鑰就是鑰匙八回。

必須保證使用你的公鑰的人明確知道這個公鑰一定是你的。你可以在網(wǎng)站或通過其它方式公布你的公鑰驾诈,以便他人進行對照確認缠诅。由于公鑰很長,所以有了對應(yīng)的指紋(指紋更易辨別乍迄,位數(shù)更少)管引,可以通過指紋進行對照(公布指紋)。

如需進一步了解SSH Key的更多用法見《SSH key的生成與使用.md》

7. 導(dǎo)入遠程主機公鑰至服務(wù)器闯两,并進行配置(無密登錄)

7.1 導(dǎo)入公鑰

把公鑰上傳到服務(wù)器端有很多方法:

  1. 使用sftp
  2. 使用ssh-copy-id
  3. 使用scp
  4. ...

使用sftp的示例:

#先使用sftp進行連接
$ sftp -o port=2222 root@127.0.0.1
#連接之后褥伴,(可使用help命令查看幫助)。
sftp>  put ~/.ssh/id_rsa.pub  ~/

使用ssh-copy-id的示例:
默認上傳到~/.ssh/id_ecdsa.pub

#簡便形式漾狼;(如果名字為默認則可免去指定公鑰名)
$ ssh-copy-id  -p 2222  root@127.0.0.1
#另一個示例
$ ssh-copy-id -i ~/.ssh/id_rsa.pub -p 221 username@remote-server.org

上傳之后:
導(dǎo)入公鑰內(nèi)容到指定的文件中

$ cat ~/路徑/id_rsa.pub >> ~/.ssh/authorized_keys

保證 authorized_keys 文件的安全

$ chmod 600 ~/.ssh/authorized_keys

7.2 配置ssh服務(wù)

sshd的配置文件位于: /etc/ssh/sshd_config
只需配置:

 GSSAPIAuthentication  no         #無需查詢DNS噩翠,加快速度
 PermitRootLogin yes            #允許root的ssh登錄;虛擬機圖個方便而已邦投,建議關(guān)閉
 PubkeyAuthentication yes   #啟用公鑰驗證
 AuthorizedKeysFile    .ssh/authorized_keys        #公鑰的保存位置,記住即可之后需要用到
 PasswordAuthentication yes #允許使用密碼驗證登錄擅笔,實際建議關(guān)閉
 PermitEmptyPasswords no    #是否允許空密碼登錄志衣,no

關(guān)閉服務(wù)器中的SELinux服務(wù):
其配置文件是: /etc/selinux/config
在文件中添加:

SELINUX=permissive  

重啟系統(tǒng) 或 使用root賬戶運行:setenforce Permissive

服務(wù)器端重啟ssh服務(wù):

service sshd restart

8 相關(guān)問題

連接時出現(xiàn)的提示信息

相關(guān)示例:

有一次出現(xiàn):

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 
@ WARNING: REMOTE HOST IDENTIFICATION(識別) HAS CHANGED(已改變)! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY(討厭的)! Someone could be eavesdropping(竊聽) on you right now (man-in-the-middle attack)! It is also possible that a host key has just been changed. The fingerprint for the RSA key sent by the remote host is 98:ab:2b:30:60:00:82:86:bb:85:db:87:22:c4:4f:b1. Please contact your system administrator.

這可能是我配置了兩臺虛擬機,虛擬機配置端口轉(zhuǎn)發(fā)時設(shè)置的IP地址和端口都是相同的猛们。才導(dǎo)致此提示該主機的指紋(也可能是指公鑰)已經(jīng)改變念脯;更改了端口就沒有問題了。(另一種做法是刪除.ssh/known_hosts文件弯淘,以后連接時再全部重新導(dǎo)入)

后一次出現(xiàn)

[root]~ $ sftp -o port=2222 root@127.0.0.1
The authenticity of host '[127.0.0.1]:2222 ([127.0.0.1]:2222)' can't be established(建立).
ECDSA key fingerprint(指紋) is SHA256:JE63mxnefTg1Hc/x5BhF+rdWmkFN6FiOBRoye56odW4.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently(永久的) added '[127.0.0.1]:2222' (ECDSA) to the list of known hosts.
root@127.0.0.1's password:

這段提示用于提示你是否信任該主機(這里指服務(wù)器)绿店,如果輸入yes則信任該主機并且將該服務(wù)器的公鑰追加到 .ssh/known_hosts文件中。

SSH圖片

enter image description here
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末庐橙,一起剝皮案震驚了整個濱河市假勿,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌态鳖,老刑警劉巖转培,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異浆竭,居然都是意外死亡浸须,警方通過查閱死者的電腦和手機惨寿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來删窒,“玉大人,你說我怎么就攤上這事蕉拢⊥龅纾” “怎么了恕汇?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵缺谴,是天一觀的道長湿蛔。 經(jīng)常有香客問我财喳,道長,這世上最難降的妖魔是什么栗弟? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任惋增,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布烟馅。 她就那樣靜靜地躺著样屠,像睡著了一般缺脉。 火紅的嫁衣襯著肌膚如雪痪欲。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天攻礼,我揣著相機與錄音业踢,去河邊找鬼。 笑死礁扮,一個胖子當(dāng)著我的面吹牛知举,可吹牛的內(nèi)容都是我干的瞬沦。 我是一名探鬼主播,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼雇锡,長吁一口氣:“原來是場噩夢啊……” “哼逛钻!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起锰提,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤曙痘,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后立肘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體边坤,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年谅年,在試婚紗的時候發(fā)現(xiàn)自己被綠了茧痒。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡踢故,死狀恐怖文黎,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情殿较,我是刑警寧澤耸峭,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站淋纲,受9級特大地震影響劳闹,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜洽瞬,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一本涕、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧伙窃,春花似錦菩颖、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至鳍怨,卻和暖如春呻右,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背鞋喇。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工声滥, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人侦香。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓落塑,卻偏偏與公主長得像纽疟,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子芜赌,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理仰挣,服務(wù)發(fā)現(xiàn),斷路器缠沈,智...
    卡卡羅2017閱讀 134,656評論 18 139
  • 1膘壶、遠程連接服務(wù)器 遠程連接服務(wù)器對于管理員來說,是一個很有用的操作洲愤。它使得對服務(wù)器的管理更為方便颓芭。不過方便歸方便...
    Zhang21閱讀 39,495評論 0 20
  • 名詞延伸 通俗的說肛宋,域名就相當(dāng)于一個家庭的門牌號碼州藕,別人通過這個號碼可以很容易的找到你。如果把IP地址比作一間房子...
    楊大蝦閱讀 20,602評論 2 57
  • 前言 10月3日22點酝陈,看到劍飛大神發(fā)布的寫作馬拉松召集信息和相關(guān)指引文章床玻。 想起今年元旦我參加了人生第一次馬拉松...
    披襖雪閱讀 760評論 5 8
  • 歲月的長河中人來人往,卻沒人為你駐足沉帮。你渴望陪伴锈死,可最后也只是孤單一人,在黑暗的路途中穆壕,連影子都拋棄了你待牵。 我曾自...
    友愛的宋辭閱讀 350評論 7 1