[RHCE] Remote Connect
SSH
SSH(Secure Shell Protocol)是一種加密的傳輸協定,利用非對稱金鑰系統。公鑰由伺服器端產生,並讓用戶端下載;用戶端利用公鑰產生私鑰並傳給伺服器端。之後伺服器與用戶端之間就以公鑰加密,私鑰解密的方式通訊。所以正常的情況下,一台主機中,會有兩把鑰匙,「遠端主機公鑰」和「本地主機私鑰」。公鑰存放的目錄在~/.ssh/know_hosts,而私鑰存放在/etc/ssh/ssh_host_key*。使用者可以使用 #ssh [參數] [使用者名稱]@[遠端主機位址] 連結登入遠端主機。-X參數可以讓ssh使用x-window通道,使用戶端可以再本機上顯示遠端主機的圖形介面。也可以使用 #ssh -f [使用者名稱]@[伺服器位址] [指令] 直接對遠端主機下達指令,無須登入。若不加-f參數,連線會卡在登入,但是指令仍會執行,必須等待遠端主機指令跑完。加上-f則會下完指令後馬上登出遠端主機,繼續在本地主機工作。
ssh的設定檔,用戶端的存放於/etc/ssh/ssh_config,伺服器端的存放於/etc/ssh/sshd_config。ssh伺服器端有幾個比較重要的設定,PermitRootLogin是設定可否使用root身分登入。AllowUser是設定允許登入的使用者,PasswordAuthentication是設定是否驗證。一般來說為了安全起見,會關閉允許使用root身分登入。
ssh同時也可以用於傳送檔案,#scp 可以用以上傳或下載檔案。
#scp [參數] [檔案或目錄] [使用者名稱]@[遠端主機位址]:[目的目錄] 用以上傳檔案。
#scp [參數] [使用者名稱]@[遠端主機位址]:[檔案或目錄] [目的目錄] 用以下載檔案。
參數-p可以保留原本的權限,-r可以複製目錄以下所有檔案,-l可以限制傳輸的速度,單位為Kbits/s。而 #rsync 可以將檔案同步至遠端主機中,用法與 #cp 類似。指令為 #rsync [參數] [使用者名稱]@[遠端主機位址]:[檔案或目錄] [目的目錄]。常用參數有,-a為保存來源所有權限屬性設定,-v為觀察模式,-r可以同步目錄以下所有檔案。
為了省去登入時輸入密碼的步驟,使得ssh可以利用在自動排程上,可建立用戶端公鑰傳至伺服器。#ssh-keygen -t dsa 可以建立DSA演算法的鑰匙,或者可用-t rsa建立RSA演算法的鑰匙。再使用 #ssh-copy-id -i .ssh/id_dsa.pub [使用者名稱]@[遠端主機位址] 送到遠端主機。如此下次登入時將不用再輸入密碼即可登入遠端主機。
ssh還有一個特殊的功能ssh tunnel,可以讓tcp的協定經由ssh傳送,提高安全性: #ssh -L [本地埠]:[遠端主機位址]:[遠端主機埠] [ssh轉送伺服器],參數-L是利用指定的本地埠轉送,-P為利用socks方式連線,-N為不建立Shell。簡單的說,ssh可以讓本地埠的封包經由ssh轉送伺服器,將封包加密傳送至遠端主機上。
VNC
VNC類似Windows系統中的遠端桌面,讓使用者連線到遠端主機時可使用圖形化介面。VNC Server是使用TigerVNC-Server,下載安裝後可在/etc/sysconfig/vncserver設定。設定檔中,需在VNCSERVERS輸入使用者,例如VNCSERVER="1:student"。而該帳號的連線密碼必須先切換到該使用者下,才可以利用 #vncpasswd 設定。設定完成啟動VNC Server後,用戶端可用 #vncviewer 進行連線。連線時位址後加上「:使用者編號」表示以該帳號登入,例如192.168.1.25:1表示以student登入。跨系統的連結必須安裝另外的程式。如果Windows系統需要登入Linux系統的VNC Server,必須在Linux系統上安裝Xrdp。Xrdp不可使用root登入,且安裝後需自行啟動服務。
如果Linux系統希望連線到Windows系統的遠端桌面,必須安裝rdesktop。#rdesktop -g [解析度] 可以調整遠端畫面的解析度。
留言
張貼留言