搜尋此網誌

RHCE - SSH


SSH
SSH(Secure Shell Protocol)是一種加密的傳輸協定,利用非對稱金鑰系統。
公鑰由伺服器端產生,並讓用戶端下載;用戶端利用公鑰產生私鑰並傳給伺服器端。
之後伺服器與用戶端之間就以公鑰加密,私鑰解密的方式通訊。
所以正常的情況下,一台主機中,會有兩把鑰匙,「遠端主機公鑰」和「本地主機私鑰」。
公鑰存放的目錄在~/.ssh/know_hosts,而私鑰存放在/etc/ssh/ssh_host_key*。
2012-01-15_222451.jpg
使用者可以使用 #ssh [參數] [使用者名稱]@[遠端主機位址] 連結登入遠端主機。
-X參數可以讓ssh使用x-window通道,使用戶端可以再本機上顯示遠端主機的圖形介面。
也可以使用 #ssh -f [使用者名稱]@[伺服器位址] [指令] 直接對遠端主機下達指令,無須登入。
若不加-f參數,連線會卡在登入,但是指令仍會執行,必須等待遠端主機指令跑完。
加上-f則會下完指令後馬上登出遠端主機,繼續在本地主機工作。

ssh的設定檔,用戶端的存放於/etc/ssh/ssh_config,伺服器端的存放於/etc/ssh/sshd_config。
ssh伺服器端有幾個比較重要的設定,PermitRootLogin是設定可否使用root身分登入。
AllowUser是設定允許登入的使用者,PasswordAuthentication是設定是否驗證。
一般來說為了安全起見,會關閉允許使用root身分登入。(預設是允許)

先切換至student帳號 交換公鑰給遠端server
desktop 指令

 #ssh-keygen
 #ssh-copy-id -i /home/student/.ssh/id_rsa.pub server40
 #ssh 'server40'
 #ssh -X 'server40'
   
serverX 指令

 #grep --color -n -e 'PermitRootLogin' -e 'PasswordAuthentication' /etc/ssh/sshd_config
 #sed -i '42s/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
 #sed -i '66s/PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
 #grep --color -n -e 'PermitRootLogin' -e 'PasswordAuthentication' /etc/ssh/sshd_config
 #service sshd restart




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 [解析度] 可以調整遠端畫面的解析度。
 

Copyright © Jackie.Chen | Powered by Blogger | Template by 54BLOGGER | Fixed by Free Blogger Templates