1. 下載與安裝
可以下載putty-0.63-installer.exe(http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html),它是一個集成安裝包,不僅包含了PuTTY,還包含了PuTTYgen,psftp等。
一路Next,默認安裝即可。
2. 配置網絡
1. 在配置網絡之前,先使用ifconfig命令查看VirtualBox中CentOS系統的網絡設置情況,對其做一個備份,然后需要關閉VirtualBox中的CentOS系統在進行下面的設置。
[root@CentOS66 ~]# ifconfig eth0 Link encap:Ethernet HWaddr 08:00:27:C3:12:74 inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fec3:1274/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:24 errors:0 dropped:0 overruns:0 frame:0 TX packets:32 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:11393 (11.1 KiB) TX bytes:3361 (3.2 KiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:16 errors:0 dropped:0 overruns:0 frame:0 TX packets:16 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:960 (960.0 b) TX bytes:960 (960.0 b)
2. WirtualBox 網絡設置有多種方式,比如 NAT network,Bridge Adapter, Host only Adapter 等方式,為了簡便,我們使用Bridge Adapter方式。這種方式 Guest OS和Host OS的IP地址在同一網段內,網絡地位是對等的。
在Host OS(Win7)中 查看IP地址
描述. . . . . . . . . . . . . . . : Intel(R) Dual Band Wireless-AC 3160 #2 DHCP 已啟用 . . . . . . . . . . . : 是 自動配置已啟用. . . . . . . . . . : 是 IPv4 地址 . . . . . . . . . . . . : 192.168.1.105(首選) 子網掩碼 . . . . . . . . . . . . : 255.255.255.0 默認網關. . . . . . . . . . . . . : 192.168.1.1 DHCP 服務器 . . . . . . . . . . . : 192.168.1.1 DNS 服務器 . . . . . . . . . . . : 202.106.46.151 202.106.195.68
3. 在VirtualBox主控制界面左側選中CentOS系統->點擊主控制界面中的Settings按鈕->在左側選擇“Network”->在右側的“Adapter 1”選項卡
連接方式(Attached to)選擇 “Bridge Adapter”(默認選擇是NAT,不是NAT network),Name選擇 Host OS 上對應的物理網卡(,它會自動選擇的,也就是上面的“Intel(R) Dual Band Wireless-AC 3160 #2”),其他保持默認,然后點擊確定。

4. 啟動CentOS,查看其IP地址,可見, CentOS的IP和宿主機Win7的IP在同一網段內了。
[root@CentOS66 ~]# ifconfig eth0 Link encap:Ethernet HWaddr 08:00:27:C3:12:74 inet addr:192.168.1.110 Bcast:255.255.255.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fec3:1274/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:23 errors:0 dropped:0 overruns:0 frame:0 TX packets:33 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:11993 (11.7 KiB) TX bytes:3667 (3.5 KiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:16 errors:0 dropped:0 overruns:0 frame:0 TX packets:16 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:960 (960.0 b) TX bytes:960 (960.0 b)
5. 檢驗Host OS和Guest OS能否ping通。
(1) Guest OS 中ping Host OS,能ping通
[root@CentOS66 ~]# ping 192.168.1.105 PING 192.168.1.105 (192.168.1.105) 56(84) bytes of data. 64 bytes from 192.168.1.105: icmp_seq=1 ttl=128 time=1.08 ms 64 bytes from 192.168.1.105: icmp_seq=2 ttl=128 time=0.578 ms 64 bytes from 192.168.1.105: icmp_seq=3 ttl=128 time=0.506 ms 64 bytes from 192.168.1.105: icmp_seq=4 ttl=128 time=0.511 ms
(2) Host OS中ping Guest OS,能ping通
C:\Users\msi>ping 192.168.1.110 正在 Ping 192.168.1.110 具有 32 字節的數據: 來自 192.168.1.110 的回復: 字節=32 時間<1ms TTL=64 來自 192.168.1.110 的回復: 字節=32 時間<1ms TTL=64 來自 192.168.1.110 的回復: 字節=32 時間<1ms TTL=64 來自 192.168.1.110 的回復: 字節=32 時間<1ms TTL=64 192.168.1.110 的 Ping 統計信息: 數據包: 已發送 = 4,已接收 = 4,丟失 = 0 (0% 丟失), 往返行程的估計時間(以毫秒為單位): 最短 = 0ms,最長 = 0ms,平均 = 0ms
3. PuTTY遠程登錄
3.1 使用密碼直接登錄
1. 打開PuTTY,在Session選項卡中,輸入CentOS的IP地址,Saved Sessions:取一個容易記憶的名字,其他保持默認。

2. 設置字符集
單擊左側的 Windows->Translation, Remote Character set 選擇“UTF-8”。
3. 保存此設置
再次點擊左側的Session,然后單擊右側的“Save”,保存此次的設置。

4. 登錄
點擊“Save”保存設置后,點擊最下方的“Open”按鈕登錄。
初次登陸時,會提示是否信任該Host,選”是“,然后會提示輸入用戶名密碼。以root用戶登錄。輸入root用戶密碼,這樣就能登錄到CentOS了。
3.2 使用SSH密鑰登錄
1. 生成密鑰對
打開PuTTYgen,然后單擊Generate按鈕,這樣就開始生成密鑰了。注意:要不停的在PuTTYgen窗口的空白處點擊鼠標,它會使用這些點擊數據來生成密鑰,這樣不停擊鼠標會加快密鑰生成的速度。
”Key commetn“保持默認,”Key passphase“是給密鑰設置的密碼,可以留空(我這里留了空,沒有設置)。”Confirm passphase“仍然留空。
2. 保存私鑰
單擊”Save private key“保存私鑰,選擇一個存放路徑,並定義一個名稱(C:\Users\msi\.ssh\PuTTY_SSH_Private_Key.ppk),單擊保存按鈕。把它保存在一個比較安全的地方,謹防丟失或泄漏。
3. 復制公鑰到CentOS
PuTTYgen窗口的”Key“下方的長字符串,是公鑰的內容,將其復制下來,然后在CentOS中做如下操作(也可以在上一節中用密碼直接登錄的PuTTY窗口中操作):
# mkdir /root/.ssh (如果已存在.ssh目錄,則不必再創建) # chmod 700 /root/.ssh (如果.ssh目錄的權限已經是drwx------,則不必再執行此條命令) # vim /root/.ssh/authorized-keys (然后將公鑰的內容粘貼到該文件中)
粘貼后,按ESC鍵,然后輸入:wq保存並退出vim。
4. 關閉seLinux
seLinux是CentOS的一種安全機制,如果不關閉seLinux,使用密鑰登錄會提示:”Server refused our key“。若要永久關閉seLinux,需編輯下面的文件:
# vim /etc/selinux/config
將 SELINUX=enforcing 這一行,改為 SELINUX=disabled。
5. 然后重啟系統。
6. 打開PuTTY,在”Session“頁面,單擊選擇已保存的”CentOS-6_6“,然后單擊”Load“按鈕,將保存的配置加載。
然后單擊左側的”Connection“下的”SSH“,展開后單擊”Auth“,找到”Private key file for authentication:“,單擊右面的”Browse“按鈕,找到事先保存的私鑰(C:\Users\msi\.ssh\PuTTY_SSH_Private_Key.ppk)打開。

7. 然后再次單擊左側的Session,起一個新名字: CentOS_6_6_SSH,然后單擊右側的“Save”,保存此次的設置。

8. 點擊“Save”保存設置后,點擊最下方的“Open”按鈕登錄。
結果還是提示”Server refused our key“。也就是說前面的配置都不成功。功虧一簣。
3.3 使用SSH密鑰登錄續
原來原因在於生成私鑰文件的步驟是在windows下的,也就是說用puttygen這個工具生成公鑰私鑰,然后將公鑰拷貝到linux下,再用私鑰訪問目前存在一些問題。
解決方案就是反過來使用linux生成私鑰公鑰文件,然后將生成的私鑰文件拷貝至window下,用puttygen.exe加載(load)它生成putty支持的私鑰文件,再用該文件訪問。【2】
1. 以root用戶登錄CentOS,然后鍵入命令:
# ssh-keygen -t dsa
生成公鑰私鑰文件,它會提示你保存位置,以及是否設置密碼,直接按Enter即可。你會在/root/.ssh隱藏文件夾下找到他們。
2. 修改公鑰文件的名字id_dsa.pub >> authorized_keys
# mv .ssh/id_dsa.pub .ssh/authorized_keys
3. 將私鑰文件id_dsa拷貝到你的windows下,打開PuTTYgen,然后點擊load,對話框中的文件類型選擇所有,load 這個id_dsa文件后,save private key,保存到一個目錄下(不要保存到C:\Users\msi\.ssh目錄下,好像不起作用,我保存到了D:\LinuxVirtual目錄下)。按照上一節的介紹,PuTTY加載這個新生成的私鑰就可以訪問linux了。
參考資料
【1】 《跟阿銘學Linux 》 Chapter 3遠程登錄Linux系統
【2】關於使用putty私鑰連接linux出現失敗的原因解決方案(http://blog.csdn.net/magic_zj00/article/details/7470023)
