馬上就要考六級還有期末考試了,,傷不起啊,所以可能Linux系列的文章更新的就沒那么快啦。。。,。。,。希望這次CET-6能夠飄過啊~~~~~~~~ 本篇隨筆將講解Linux下常用的兩個(gè)遠(yuǎn)程管理工具,,一個(gè)是基于CLI(命令行模式)的SSH,另一個(gè)是基于GUI(圖形用戶界面模式)的VNC,。 一,、遠(yuǎn)程管理的基本概念 首先我們來初略的講講遠(yuǎn)程管理的一些基本概念。對于我們使用的計(jì)算機(jī)來說,如果是個(gè)人計(jì)算機(jī),,就沒有遠(yuǎn)程管理這一概念了,,想用的時(shí)候開機(jī)就能使用,而對于我們的服務(wù)器來說,,就不同了,,對于服務(wù)器其一般都是放置在我們的IDC機(jī)房當(dāng)中,我們通常是無法直接接觸到服務(wù)器硬件,,那么我們?nèi)绻獙Ψ?wù)器進(jìn)行操作的話,,就只能通過遠(yuǎn)程管理的方式來對我們的服務(wù)器進(jìn)行控制了。 目前我們常見的遠(yuǎn)程管理控制方式主要有以下幾種: ①RDP(remote desktop protocol)協(xié)議 遠(yuǎn)程桌面協(xié)議,,我們常用的windows操作系統(tǒng)就是的遠(yuǎn)程桌面管理就是基于該協(xié)議的,,更多有關(guān)RDP協(xié)議的可以查看百度百科 RDP ②telnet CLI界面下的遠(yuǎn)程管理工具,因?yàn)槠錃v史非常悠久,,幾乎所有的操作系統(tǒng)都有該工具(telnet在傳送數(shù)據(jù)時(shí)是通過明文傳輸?shù)?,沒有加密,所以現(xiàn)在幾乎都不會使用telnet來進(jìn)行遠(yuǎn)程管理了) telnet ③SSH(Secure Shell)協(xié)議 CLI界面下的遠(yuǎn)程管理工具,,幾乎所有的操作系統(tǒng)都有(區(qū)別于telnet,,SSH在進(jìn)行數(shù)據(jù)傳送時(shí)會對數(shù)據(jù)進(jìn)行加密,所以SSH是比較安全的協(xié)議),,幾乎所有的類UNIX操作系統(tǒng)都是采用SSH來進(jìn)行遠(yuǎn)程管理(Linux,、BSD、Mac OS等),?! ?a title="SSH" target="_blank">SSH ④RFB(Remote FrameBuffer)協(xié)議 圖形化遠(yuǎn)程管理協(xié)議,VNC(Virtual Network Computing)就是基于該協(xié)議的,,上面講的SSH在類UNIX下是CLI界面常用的遠(yuǎn)程管理方式,,那么在類UNIX操作系統(tǒng)中,同樣存在圖形化的遠(yuǎn)程管理工具,,VNC就是類UNIX系統(tǒng)下常用的圖形化遠(yuǎn)程管理工具 二,、SSH 在之前的一篇隨筆當(dāng)中,也詳細(xì)講解了SSH的一些基本概念及原理 (Linux學(xué)習(xí)之CentOS(十四)--初識ssh),在這里將對SSH的一些概念進(jìn)行補(bǔ)充,,以及講解一些SSH的一些常用命令,。 SSH(Secure Shell)協(xié)議是Linux、Unix,、Mac及其他網(wǎng)絡(luò)設(shè)備最常用的遠(yuǎn)程CLI管理協(xié)議,,SSH在對數(shù)據(jù)進(jìn)行傳送過程中會使用非對稱的加密算法來對數(shù)據(jù)進(jìn)行加密,以此來保證遠(yuǎn)程管理數(shù)據(jù)的安全 SSH2是目前廣泛使用的ssh版本,,SSH協(xié)議是TCP協(xié)議,,其占用的端口號是 22 我們絕大多數(shù)Linux版本默認(rèn)使用的SSH是openssh,,通過 ssh -V 命令可以查看ssh的信息 [root@xiaoluo ~]# ssh -V OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010 SSH分為服務(wù)器端和客戶端,對于服務(wù)器端,,SSH是默認(rèn)開機(jī)啟動的,,作為常駐服務(wù)存在,我們可以通過 service sshd status 命令來查看 [root@xiaoluo ~]# service sshd status openssh-daemon (pid 1578) is running... 我們可以通過 ssh 命令用以以SSH協(xié)議登陸其他主機(jī),,因?yàn)檫@里我們的windows是沒有默認(rèn)安裝ssh客戶端的,,所以我這里也是在虛擬機(jī)中的 centos 里面遠(yuǎn)程登錄 我們可以通過 ssh [email protected] 命令來進(jìn)行登陸,root是我們需要登陸的用戶名,,@后面跟的是我們的ip地址 [root@xiaoluo ~]# ssh [email protected] The authenticity of host '172.25.215.40 (172.25.215.40)' can't be established. RSA key fingerprint is 53:61:a6:9c:32:92:85:12:1d:97:c9:2c:0c:9b:f6:3e. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '172.25.215.40' (RSA) to the list of known hosts. [email protected]'s password: 我們看到,,當(dāng)我們輸入該命令以后,其會提示我們是否生成一個(gè)密鑰,,因?yàn)槲覀兊腟SH是加密的,,所以我們輸入 yes ,此時(shí)就會給該遠(yuǎn)程登錄端生成一個(gè)加密的密鑰,,這個(gè)密鑰是保存在用戶家目錄下的 .ssh/ 目錄中,,我們可以看一下里面的內(nèi)容: [root@xiaoluo ~]# cat ./.ssh/known_hosts 我們看到,,其實(shí)這里保存的就是我們遠(yuǎn)程登錄管理的一個(gè)ssh密鑰,。使用哪個(gè)用戶名登陸,就會在該用戶家目錄下生成有給密鑰,,我們輸入用戶密碼,,就能遠(yuǎn)程登錄上我們的主機(jī)了 我們可以通過 ssh [email protected] 命令遠(yuǎn)程登錄到我們的主機(jī),我們有時(shí)如果登陸遠(yuǎn)程主機(jī)只是為了執(zhí)行某條命令,,此時(shí)我們可以直接在后面跟命令名字即可,,例如 ssh [email protected] ls,這樣我們就只會登陸遠(yuǎn)程主機(jī)然后執(zhí)行完命令就返回了 對于其他一些常用的SSH命令,,還有 scp ,、rsync等這些命令 scp 命令是用以在兩臺計(jì)算機(jī)之間進(jìn)行快速的、加密的數(shù)據(jù)傳輸,,命令的語法格式為: scp 源文件 目標(biāo)地址 例如我們要將當(dāng)前目錄下的 xiaoluo.txt 這個(gè)文件復(fù)制到 172.25.215.40 這臺主機(jī)的 /root 目錄下,,我們可以使用如下命令: [root@xiaoluo ~]# scp xiaoluo.txt root@172.25.215.40:/root/ 這樣我們的文件就會復(fù)制到172.25.215.40 這臺主機(jī)的 root目錄下了,我們還可以為該命令加一些參數(shù),,例如 -R 遞歸,、 -p 傳輸時(shí)保留文件權(quán)限和時(shí)間戳 -C 傳輸時(shí)進(jìn)行數(shù)據(jù)壓縮等參數(shù)。 對于其他一些與SSH相關(guān)的命令,,我將在后面學(xué)習(xí)到的時(shí)候再詳細(xì)記錄 三,、VNC 剛才講過,VNC(Virtual Network Computing)是一種Linux系統(tǒng)(或者BSD,、Mac等)下常用的圖形化遠(yuǎn)程管理工具,,使用的是RFB協(xié)議 VNC跟SSH一樣,也分為客戶端與服務(wù)器端,我們在需要被遠(yuǎn)程訪問的服務(wù)器上安裝VNC的服務(wù)器端,,其他計(jì)算機(jī)上安裝VNC的客戶端程序與其進(jìn)行連接 CentOS 6/RHEL 6中我們使用的是 tigervnc 來作為自帶的VNC工具,,默認(rèn)這個(gè)工具是沒有被安裝的,我們?nèi)绻胍褂肰NC服務(wù),,就必須根據(jù)一下的操作步驟: ①首先我們需要通過 yum 來安裝 tigervnc 這個(gè)工具 [root@xiaoluo ~]# yum install tigervnc-server Loaded plugins: fastestmirror, refresh-packagekit, security Loading mirror speeds from cached hostfile * base: centos.ustc.edu.cn * extras: mirror01.idc.hinet.net * updates: centos.ustc.edu.cn Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package tigervnc-server.x86_64 0:1.1.0-5.el6_4.1 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: tigervnc-server x86_64 1.1.0-5.el6_4.1 updates 1.1 M Transaction Summary ================================================================================ Install 1 Package(s) Total download size: 1.1 M Installed size: 2.9 M Is this ok [y/N]: y Downloading Packages: tigervnc-server-1.1.0-5.el6_4.1.x86_64.rpm | 1.1 MB 00:16 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : tigervnc-server-1.1.0-5.el6_4.1.x86_64 1/1 Verifying : tigervnc-server-1.1.0-5.el6_4.1.x86_64 1/1 Installed: tigervnc-server.x86_64 0:1.1.0-5.el6_4.1 Complete! ②安裝完 tigervnc-server 服務(wù)器端程序以后我們需要對其進(jìn)行配置,,配置文件是 /etc/sysconfig/vncservers
[root@xiaoluo ~]# cat /etc/sysconfig/vncservers # The VNCSERVERS variable is a list of display:user pairs. # # Uncomment the lines below to start a VNC server on display :2 # as my 'myusername' (adjust this to your own). You will also # need to set a VNC password; run 'man vncpasswd' to see how # to do that. # # DO NOT RUN THIS SERVICE if your local area network is # untrusted! For a secure way of using VNC, see this URL: # http://kbase.redhat.com/faq/docs/DOC-7028 # Use "-nolisten tcp" to prevent X connections to your VNC server via TCP. # Use "-localhost" to prevent remote VNC clients connecting except when # doing so through a secure tunnel. See the "-via" option in the # `man vncviewer' manual page. # VNCSERVERS="2:myusername" # VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -localhost"
我們看到,這個(gè)配置文件默認(rèn)是沒有任何配置信息的,,所以我們?nèi)绻枰褂肰NC服務(wù),,就要修改其配置信息: [root@xiaoluo ~]# vi /etc/sysconfig/vncservers # The VNCSERVERS variable is a list of display:user pairs. # # Uncomment the lines below to start a VNC server on display :2 # as my 'myusername' (adjust this to your own). You will also # need to set a VNC password; run 'man vncpasswd' to see how # to do that. # # DO NOT RUN THIS SERVICE if your local area network is # untrusted! For a secure way of using VNC, see this URL: # http://kbase.redhat.com/faq/docs/DOC-7028 # Use "-nolisten tcp" to prevent X connections to your VNC server via TCP. # Use "-localhost" to prevent remote VNC clients connecting except when # doing so through a secure tunnel. See the "-via" option in the # `man vncviewer' manual page. # VNCSERVERS="2:myusername" # VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -localhost" VNCSERVERS="1:xiaoluo" // 在配置文件后面加上這樣一條配置,VNCSERVERS="1:xiaoluo" ,,后面引號里面的內(nèi)容代表的就是我要為哪個(gè)用戶開啟服務(wù),,1其實(shí)就相當(dāng)于端口號,比如說我要為第一個(gè)用戶 xiaoluo 開啟一個(gè)VNC服務(wù),,端口號就是1 ,,如果還需要為其他用戶添加VNC服務(wù),則繼續(xù)在后面添加,,例如 VNCSERVERS="1:xiaoluo 2:root"這樣我們就有兩個(gè) VNC 服務(wù)了,,一個(gè)是xiaoluo用戶登錄的,另一個(gè)是 root 用戶登錄的 ③配置好后,,VNC還需要有單獨(dú)的VNC密碼才行,,所以我們要對每個(gè)啟用VNC服務(wù)的用戶創(chuàng)建單獨(dú)的VNC密碼,通過 vncpasswd 命令(【注意:】必須要切換到該用戶才行,,否則VNC服務(wù)啟動不起來): [root@xiaoluo ~]# su - xiaoluo
[xiaoluo@xiaoluo ~]$ vncpasswd
Password:
Verify:
④為用戶設(shè)置好單獨(dú)的VNC密碼后,,我們這個(gè)時(shí)候啟動 vncserver 這個(gè)服務(wù) [root@xiaoluo ~]# service vncserver start Starting VNC server: 1:xiaoluo xauth: (stdin):1: bad display name "xiaoluo:1" in "add" command New 'xiaoluo:1 (xiaoluo)' desktop is xiaoluo:1 Creating default startup script /home/xiaoluo/.vnc/xstartup Starting applications specified in /home/xiaoluo/.vnc/xstartup Log file is /home/xiaoluo/.vnc/xiaoluo:1.log [ OK ] ⑤我們通常需要將iptables關(guān)閉或者將其里面的規(guī)則清空,或者在iptables里面加上一條規(guī)則,,否則不能通過vnc客戶端來遠(yuǎn)程登錄vnc服務(wù)端 [root@xiaoluo ~]# iptables -F // 清空我們的iptables
這個(gè)時(shí)候我們的VNC服務(wù)器端就配置好了,,接下來我們就可以通過安裝VNC客戶端來遠(yuǎn)程登錄了,對于VNC客戶端程序,,其在Linux,、Mac、Windows等操作系統(tǒng)平臺上都有客戶端程序,,我這里下載的是 windows 的vnc客戶端來遠(yuǎn)程登錄我們的CentOS服務(wù)器主機(jī),,下載地址如下:VNC客戶端下載地址 下載完以后我們點(diǎn)擊安裝,安裝過程中提示要我們進(jìn)行注冊,,我們?nèi)テ涔倬W(wǎng)注冊以后,,然后將注冊碼填上去就行了,然后啟動我們的VNC客戶端程序,,界面如下:
在VNC Server這里輸入我們要遠(yuǎn)程登陸的主機(jī)IP,,【注意:】(這里要寫上IP以及端口號,,還記得我們剛才在VNC服務(wù)器端配置的VNC主配置文件嗎?沒錯(cuò),,我們?yōu)槊恳粋€(gè)需要開啟VNC的服務(wù)都自己定義了一個(gè)端口號,,比如說剛才1端口號就是以 xiaoluo 用戶登錄),然后點(diǎn)擊Connect
這里會提示我們需要連接到 172.25.215.40:1 這臺主機(jī)上,,我們點(diǎn)擊Continue即可:
這個(gè)時(shí)候提示我要我輸入端口號為1這個(gè)用戶的密碼,,注意這個(gè)密碼是我們上面創(chuàng)建的個(gè)人用戶的 VNC 密碼,輸入完點(diǎn)擊OK
這個(gè)時(shí)候我們發(fā)現(xiàn)我們已經(jīng)以GUI的方式遠(yuǎn)程登錄到了我們的CentOS主機(jī)上了,,這里要求我們輸入 root 用戶的密碼,,我們輸入密碼授權(quán)即可,然后點(diǎn)擊Authenticate(第一次遠(yuǎn)程登錄會提示讓我們輸入root密碼進(jìn)行授權(quán),,以后再登陸時(shí)就不需要輸入root密碼了)
此時(shí)我們發(fā)現(xiàn),,我們已經(jīng)通過圖形界面遠(yuǎn)程登錄到我們的主機(jī)上了,我們可以在里面進(jìn)行任何權(quán)限范圍內(nèi)的操作了,,就跟直接使用服務(wù)器一樣
這次,,本篇隨筆就告一段落了,本篇隨筆主要講解了遠(yuǎn)程管理的基本概念,,以及Linux下最常用的兩種遠(yuǎn)程管理的方式,,一種只基于CLI命令行模式的SSH,另一種就是基于GUI圖形界面模式的VNC?。,?!
|
|