歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux系統的遠程登陸

Linux系統的遠程登陸

日期:2017/2/28 13:55:33   编辑:Linux教程

Linux大多應用於服務器,而服務器不可能像PC一樣放在辦公室,它們是放在IDC機房的,所以阿銘平時登錄Linux系統都是通過遠程登錄的。Linux系統中是通過ssh服務實現的遠程登錄功能。默認sshd服務開啟了22端口,而且當我們安裝完系統時,這個服務已經安裝,並且是開機啟動的。所以不需要我們額外配置什麼就能直接遠程登錄Linux系統。sshd服務的配置文件為 /etc/ssh/sshd_config,您可以修改這個配置文件來實現您想要的sshd服務。比如您可以更改啟動端口為11587.

如果您是windows的操作系統,則Linux遠程登錄需要在我們的機器上額外安裝一個終端軟件。目前比較常見的終端登錄軟件有SecureCRT, Putty, SSH Secure Shell等,很多朋友喜歡用SecureCRT因為它的功能是很強大的,而阿銘喜歡用Putty,只是因為它的小巧以及非常漂亮的顏色顯示。不管您使用哪一個客戶端軟件,最終的目的只有一個,就是遠程登錄到Linux服務器上。這些軟件網上有很多免費版的,您可以下載一個試著玩玩。

您不妨跟著阿銘一起來用一用Putty這個小巧的工具。

下載Putty

阿銘建議您到Putty的官方站點去下載英文版原版的putt. 網上曾經報過,某個中文版的Putt被別有用心的黑客給動了手腳,給植了後門。所以,阿銘提醒各位,以後不管下載什麼軟件盡量去官方站點下載。下載地址: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html 連接遠程Linux服務器的工具只需要下載putty.exe即可 http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe 下載後直接雙擊運行就可以了不需要安裝。

給您的Linux配置IP

要想遠程連接Linux服務器,首先需要知道服務器的IP。因為阿銘用的虛擬機,而且虛擬機所跑的真機是自動獲得的ip,所以虛擬機也可以自動獲得ip。如果您是一步一步跟阿銘裝的Linux那麼您的Linux目前肯定是沒有IP的,下面阿銘教您幾種配置IP的方法:

  1. 自動獲取IP

只有一種情況可以自動獲取IP地址,那就是您的Linux所在的網絡環境中有DHCP服務。[1] 總之,只要您的真機可以自動獲取IP,那麼安裝在虛擬機的Linux同樣也可以自動獲取IP. 方法很簡單,只需要運行一個命令。

[root@localhost ~]# dhclient

運行這條命令後,會出現一大堆信息,您不用關心是什麼。然後運行 ‘ifconfig’ 命令查看IP是什麼:

[root@localhost ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:D9:F0:52
          inet addr:10.72.137.85  Bcast:10.72.137.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fed9:f052/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:27135 errors:0 dropped:0 overruns:0 frame:0
          TX packets:53 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:3488498 (3.3 MiB)  TX bytes:7550 (7.3 KiB)
          Interrupt:18 Base address:0x1080

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:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

通過這個命令可以查看系統有幾塊網卡和網卡的IP,阿銘的系統eth0的IP是 10.72.137.85. 如果您的Linux有多塊網卡,那麼在Linux中它會顯示成eth1, eth2 依此類推。

  1. 手動配置IP

如果您的虛擬機不能自動獲取IP,那麼只能手動配置,配置方法為:

[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0

使用vi 命令打開 “/etc/sysconfig/network-scripts/ifcfg-eth0” 這個配置文件。關於命令 vi 阿銘會在後續章節詳細介紹,暫時您只要了解這個命令是用來編輯文件的即可。輸入上述命令後回車,打開了該配置文件。使用方向鍵的向下箭頭讓光標移動到最後面一行,然後按字母鍵 ‘o’,進入編輯模式,增加如下內容:

IPADDR=10.72.137.85
NETMASK=255.255.255.0
GATEWAY=10.72.137.1

請注意,由於阿銘不知道您的網絡具體環境,所以也不曉得您應該配置什麼樣的IP,請不要直接照搬阿銘給出的例子,這樣配置肯定是不行的,請配置成和您的真機(windows)在同一個網段的IP。關於netmask以及gateway的概念請自行在網上查詢,這是關於網絡技術的基礎知識。另外還需要把光標移動到 “ONBOOT=no” 這一行,改為:

ONBOOT=yes

“BOOTPROTO=dhcp” 改為:

BOOTPROTO=none

之後按一下鍵盤左上角的 “ESC”鍵,然後輸入 :wq , 它會顯示在屏幕的左下方,然後按回車,這樣就保存該配置文件了。之後,需要重啟一下網絡服務:

[root@localhost ~]# service network restart
正在關閉接口 eth0:                                        [確定]
關閉環回接口:                                             [確定]
彈出環回接口:                                             [確定]
彈出界面 eth0:                                            [確定]

這樣網絡重啟後,eth0 的IP就生效了。使用 “ifconfig eth0” 命令查看一下:

[root@localhost ~]# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:0C:29:D9:F0:52
          inet addr:10.72.137.85  Bcast:10.72.137.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fed9:f052/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:27135 errors:0 dropped:0 overruns:0 frame:0
          TX packets:53 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:3488498 (3.3 MiB)  TX bytes:7550 (7.3 KiB)
          Interrupt:18 Base address:0x1080

接下來請檢測一下您配置的IP是否可以ping通。阿銘使用的windows7系統,所以使用cmd打開命令窗口,進行檢測。打開cmd的快捷鍵是 windows + r.

C:\Users\Administrator>ping 10.72.137.85

正在 Ping 10.72.137.85 具有 32 字節的數據:
來自 10.72.137.85 的回復: 字節=32 時間=1ms TTL=64
來自 10.72.137.85 的回復: 字節=32 時間<1ms TTL=64
來自 10.72.137.85 的回復: 字節=32 時間<1ms TTL=64
來自 10.72.137.85 的回復: 字節=32 時間<1ms TTL=64

10.72.137.85 的 Ping 統計信息:
    數據包: 已發送 = 4,已接收 = 4,丟失 = 0 (0% 丟失),
往返行程的估計時間(以毫秒為單位):
    最短 = 0ms,最長 = 1ms,平均 = 0ms
  1. 利用vmware的NAT給Linux配置IP

這一部分內容,參考 http://www.linuxidc.com/Linux/2015-12/126792.htm 如果您已經配置好IP且可以ping通,這一部分設置則不需要再做了,但有必要了解一下,也許有一天您會用到。這一部分配置適合這樣的場景:您的辦公網不能通過dhcp獲得IP,或者您不想讓您的Linux處在和辦公網一個網段,而且也想讓Linux上網。

  • 設置虛擬機上的nat
Edit –> Virtual Network setting –> NAT –> Vmnet 8 Gateway IP address : 192.168.205.2 Netmask : 255.255.255.0 NAT service: Started –> 確定
  • 修改虛擬機的網卡設置
雙擊虛擬機右下角的網卡小圖標,鼠標移動過去後會顯示 “Ethernet: ...” Device status 那兩項都需要打對鉤; Network connection 需要選擇最後一項(Custom:Specific virtual network) 選擇Vmnet8(NAT) 最後點ok
  • 到您的電腦上 [2]
右擊”網上鄰居” –> 屬性 –> 右擊 “VMware Network Adapter VMnet8” –> 屬性 –> 雙擊 “Internet 協議(TCP/IP)” –> 手動設置IP為 192.168.205.1 子網掩碼為 255.255.255.0 網關 和 dns 都設置為 192.168.205.2 –> 確定 –> 確定
  • 設置您虛擬機IP

在您的Linux上編輯eth0的配置文件 vi /etc/sysconfig/network-scripts/ifcfg-eth0 內容如下:

DEVICE=eth0
BOOTPROTO=none
HWADDR=00:0C:29:33:F7:3A
ONBOOT=yes
IPADDR=192.168.205.3
NETMASK=255.255.255.0
GATEWAY=192.168.205.2
  • 設置DNS地址

運行命令 vi /etc/resolv.conf 內容如下:

nameserver 192.168.205.2
  • 重啟網絡服務
運行命令 service network restart

如果您遇到類似這樣的問題:重啟網絡服務後,發現/etc/resolv.conf中設置的DNS地址消失了,您可以參考這個帖子解決您的問題: http://www.linuxidc.com/Linux/2015-12/126794.htm

用putty登陸您的Linux

上一小節阿銘帶您設置IP,就是給這一部分做鋪墊,沒有IP是沒有辦法遠程連接Linux的。雙擊先前下載的putty.exe文件,這個小工具特別小巧僅僅有幾百K,但是您可不要小看它,功能可是不少呢,而且這個工具的���助文檔夠您看好幾天的了,關鍵是全都是英文。如果您的英文能力差一些也沒有關系,相信隨著您用Linux越來越多,您的英文能力也會越來越強。

  • 填寫遠程Linux基本信息

Host Name (or IP address) 這一欄填寫您在上一小節剛剛配置的IP,阿銘的Linux IP為 “10.72.137.85”.

Port 這一欄保持默認不變。

Connection type 也保持默認。

Saved Sessions 這裡自定義一個名字,主要用來區分主機,因為將來您的主機會很多,寫個簡單的名字即方便記憶又能快速查找。

  • 定義字符集
計算機裡最煩人的就是字符集了,尤其是Linux,搞不好就會亂碼。阿銘在第三章教您安裝CentOS時已經安裝了中文語言支持,所以安裝好的系統是支持中文的,在putty這裡設置也要支持中文。點一下左側的 “Window” –> “Translation”, 看右側的 “Character set translation on received data”, 選擇UTF-8. 之後再點一下左側的 “Session”, 然後點右側的 “save”.
  • 遠程連接您的Linux

保存session後,點最下方的 “Open”. 初次登陸時,都會彈出一個友情提示,它的意思是要打開的Linux還未在本機登記,問我們是否要信任它。如果是可信任的,則點 ‘是’ 登記該主機,否則點 ‘否’ 或者 ‘取消’,我們當然要點 ‘是’. 之後彈出登陸提示:

login as: root
[email protected]'s password:
Last login: Wed May  8 08:02:17 2013 from 10.72.137.89

輸入用戶名以及密碼後,就登陸Linux系統了。登陸後會提示最後一次登陸系統的時間以及從哪裡登陸。

使用密鑰認證機制遠程登錄Linux

SSH服務支持一種安全認證機制,即密鑰認證。所謂的密鑰認證,實際上是使用一對加密字符串,一個稱為公鑰(publickey), 任何人都可以看到其內容,用於加密;另一個稱為密鑰(privatekey),只有擁有者才能看到,用於解密。通過公鑰加密過的密文使用密鑰可以輕松解密,但根據公鑰來猜測密鑰卻十分困難。 ssh的密鑰認證就是使用了這一特性。服務器和客戶端都各自擁有自己的公鑰和密鑰。如何使用密鑰認證登錄linux服務器呢?

  1. 下載生成密鑰工具

在本章前面阿銘提供的putty下載地址裡,您一定看到了很多可以下載的東西,不過阿銘只讓您下載了一個putty.exe. 因為當時只用到這一個工具,其實完整的putty程序包含很多個小工具的,所以這次阿銘建議您直接下載個完整包 http://the.earth.li/~sgtatham/putty/latest/x86/putty.zip 下載後解壓,其中puyttygen.exe就是咱們這一小節中所要用到的密鑰生成工具。

  1. 生成密鑰對

關於密鑰的工作原理,如果您感興趣可以到網上查一查,阿銘不想介紹太多無關知識點,不過,了解一下也沒有什麼不好。雙擊puttygen.exe, 右下角 “Number of bits in a generated key” 把 “1024” 改成 “2048”, 然後點 “Generate”, 這樣就開始生成密鑰了,請來回動一下鼠標,這樣才可以快速生成密鑰對,大約十幾秒後就完成了。 “Key comment:” 這裡可以保持不變也可以自定義,其實就是對該密鑰的簡單介紹; “Kye passphrase:” 這裡用來給您的密鑰設置密碼,這樣安全一些,當然也可以留空,阿銘建議您設置一個密碼;”Confirm passphrase:” 這裡再輸入一遍剛剛您設置的密碼。

  1. 保存私鑰

點 “Save private key”, 選擇一個存放路徑,定義一個名字,點 “保存”。請保存到一個比較安全的地方,謹防丟掉或被別人看到。

  1. 復制公鑰到Linux

回到剛才生成密鑰的窗口,在 “Key” 的下方有一段長長的字符串,這一串就是公鑰的內容了,把整個公鑰字符串復制下來。然後粘貼到您的Linux的 /root/.ssh/authorized_keys 文件裡。下面請跟著阿銘一起來做操作:

[root@localhost ~]# mkdir /root/.ssh
[root@localhost ~]# chmod 700 /root/.ssh

首先創建/root/.ssh 目錄,因為這個目錄默認是不存在的,然後是更改權限。 關於 mkdirchmod 兩個命令,阿銘會在後續章節詳細介紹,暫時您只要知道是用來創建目錄和更改權限的就行了。然後是把公鑰內容粘貼進 /root/.ssh/authorized_keys 文件。

[root@localhost ~]# vi /root/.ssh/authorized_keys

回車後,按一下 ‘i’ 進入編輯模式,然後直接點擊鼠標右鍵就粘貼了,這是putty工具非常方便的一個功能。粘貼後,按一下 ‘Esc’ 鍵,然後輸入 :wq 回車保存退出該文件。

  1. 關閉Selinux

如果不關閉selinux, [3] 使用密鑰登陸會提示 “Server refused our key”, 關閉方法:

[root@localhost ~]# setenforce 0

這個只是暫時命令行關閉selinux, 下次重啟Linux後selinux還會開啟。永久關閉selinux的方法是:

[root@localhost ~]# vi /etc/selinux/config

回車後,把光標移動到 “SELINUX=enforcing” 按一下 i 鍵,進入編輯模式,修改為

SELINUX=disabled

按 “Esc”, 輸入 :wq 回車,然後重啟系統

  1. 設置putty通過密鑰登陸

打開putty.exe點一下您保存好的session,然後點右側的 “Load”, 在左側靠下面點一下 “SSH” 前面的 + 然後選擇 “Auth”, 看右側 “Private key file for authentication:” 下面的長條框裡目前為空,點一下 “Browse”, 找到我們剛剛保存好的私鑰,點”打開”。此時這個長條框裡就有了私鑰的地址,當然您也可以自行編輯這個路徑。然後再回到左側,點一下最上面的 “Session”, 在右側再點一下 “Save”.

  1. 使用密鑰驗證登陸Linux

保存好後session, 點一下右下方的 “Open”. 出現登陸界面,您會發現和原來的登陸提示內容有所不同了。

login as: root
Authenticating with public key "rsa-key-20130509"
Passphrase for key "rsa-key-20130509":
Last login: Thu May  9 16:17:13 2013 from 10.72.137.43
[root@localhost ~]#

現在不再輸入root密碼,而是需要輸入密鑰的密碼,如果您先前在生產密鑰的時候沒有設置密碼,您輸入root後會直接登陸系統。

[1] DHCP服務,是自動分配IP的服務,我們平時所在的辦公室網絡環境裡,都有DHCP服務。另外家用的路由器像Tplink 或者 dlink 都有DHCP服務的功能。 [2] 這一部分阿銘是在windows XP上配置的,windows7 的配置道理也是一樣的。 [3] selinux是RedHat、CentOS特有的安全機制,這個東西很復雜,我們從來都不要開啟它,因為selinux開啟後,會產生諸多莫名其妙的bug。
Copyright © Linux教程網 All Rights Reserved