SSH遠程連接服務器

1、遠程連接服務器

遠程連接服務器對于管理員來說,是一個很有用的操作。它使得對服務器的管理更為方便。不過方便歸方便,但開放的讓全世界都可以嘗試連接你的主機并不是什么好事,因為可能會有安全性問題。


1.1、什么是遠程連接服務器

遠程連接服務器通過文字或圖形接口的方式來遠程登錄系統,讓你在遠程的終端前面登錄Linux主機已取得可操作主機的接口(Shell),而登陸后的操作感覺上就像坐在系統前面一樣!

用 SSH/Telnet/VNC 等方式取得的文字或者圖形 Shell 能夠進行很多系統管理的任務,與單純的 FTP 能進行的工作當然不同。

遠程連接服務器的功能:

1、分享 Unix-Like 主機的運算能力;

2、服務器類型(Server),有限度的開放連接;

3、工作站類型(Workstation),只對內網開放;

1.2、有哪些可供登錄的類型

文字接口和圖形接口,明文傳輸和加密傳輸

文字接口明文傳輸:Telnet、RSH,目前已少用;

文字接口加密:SSH為主;

圖形接口:XDMCP、VNC、XRDP等


2、SSH服務器

SSH(Secure Shell Protocol),它可以通過數據包加密技術將等待傳輸的數據包加密后在傳輸到網絡上,因此數據信息就比較安全。

在默認狀態下,SSH協議本身提供兩個服務器功能。

一個是類似 Telnet 的遠程連接使用 Shell 的服務器,即俗稱的SSH;

另一個就是類似 FTP 服務的 Sftp-Server,提供更安全的 FTP 服務

2.1、連接加密技術

目前常見的數據包加密技術通常是所謂的 ?“非對稱密鑰系統” 來處理的。主要是通過兩把不一樣的公鑰(Public)和私鑰(Private)來進行加密與解密的過程。由于這兩把鑰匙的作用是提供數據加解密的,所以在同一個方向的連接中,這把鑰匙當然是需要成對的。

公鑰(Public Key):提供給遠程主機進行數據加密行為,也就是說大家都能取得你的公鑰來將數據加密;

私鑰(Private Key):遠程主機使用你的公鑰加密的數據,在本地端就只能使用來進行解密。由于私鑰很重要,因此私鑰是不能夠外流的,只能保護在自己的主機上。

由于每臺主機都應該有自己的密鑰(公鑰與私鑰),且公鑰用來加密而私鑰用來解密,其中私鑰不可外流,但因為網絡是雙向的,所以,每個人應該都要有對方的“公鑰”才對!

公鑰和私鑰


公鑰私鑰的產生
1、服務器建立公鑰文件;

2、客戶端主動連接要求;

3、服務器傳送公鑰給客戶端;

4、客戶端記錄/對比服務器的公鑰數據及計算自己的公私鑰;(客戶端的密鑰是隨機運算產生于本次連接當中的,所以這次的連接與下次的連接密鑰可能會不一樣啦!此外客戶端的用戶主目錄下:~/.ssh/know_hosts 中會記錄曾經連接過的主機的 Public Key,用于確認·我們自己已經連接上正確的服務器。如果想要產生新的密鑰則 rm ?/etc/ssh/ssh_host*

5、返回客戶端的公鑰數據到服務器;

6、服務器接受私鑰開始雙向加解密。

2.2、啟動SSH服務

啟動及查看ssh服務

SSHD可以同時提供Shell和FTP,而且都是架構在 Port 22 上面的

2.3、SSH客戶端連接程序 —— Linux用戶

2.3.1、SSH:直接登錄遠程主機的指令

ssh用法

如果不填寫賬號的話,那么會以本地端計算機的賬號來嘗試登陸遠程。

ssh ?192.168.1.1

ssh ?hahaha@192.168.1.1

ssh ?-f ?hahaha@192.168.1.1 ?shutdown -h ?now

2.3.2、服務器公鑰記錄文件:~/.ssh/known_hosts

當你登錄遠程服務器時,本機會主動接收到服務器的Public Key去比對 ~/.ssh/known_hosts有無相關公鑰。

2.3.3、模擬FTP的文件傳輸方式:SFTP

SSH是登錄遠程服務器進行工作,那如果你只是想要從遠程服務器下載或者上傳文件呢?那就不使用SSH啦,而必須使用SFTP或SCP。這兩個指令都是使用SSH的通道(port :22),只是模擬成FTP與復制的操作而已。

sftp ?student@192.168.1.1

SFTP用法

2.3.4、文件異地直接復制:SCP

通常使用SFTP是因為可能不知道服務器上面已存在的文件名信息,如果已經知道服務器上的文件名,那么最簡單快捷的方式是使用SCP這個命令。

scp用法

scp ?/home/aaa/test.txt ?zhang@192.168.1.1:/home/zhang

scp ?zhang@192.168.1.1:/home/zhang/AAA.txt ?/home/aaa/


3、SSHD服務器詳細配置

基本上,所有的SSHD服務器的詳細配置都放置在 /etc/ssh/sshd_config 配置文件中。同時請注意,配置文件里只要未被修改的值即為默認值,你可以依據它來修改。建議取消root登錄并將SSH版本設定為2.

vim ?/etc/ssh/sshd_config

將遠程連接禁止root登錄:

#PermitRootLogin ?yes ? ?改為 ? ?PermitRootLogin ? ?no;

#Protocol 2

SSH限制被嘗試次數:

MaxAuthTries ?6;

在限定的次數里面密碼認證失敗的話將會被強制斷開連接。

關閉UseDNS加速SSH登錄:

經常登錄SSH的朋友可以感覺出,每次登錄SSH時總是要停頓一下才能連接上,這是因為OpenSSH服務器有一個DNS查找選項UseDNS在默認情況下是打開的;

UseDNS選項打開的狀態下,當客戶端試圖登錄SSH服務器時,服務器端先根據客戶端的IP地址進行DNS PTR反向查詢客戶端主機名,然后根據查詢出的客戶端主機名進行DNS正向A記錄查詢,驗證與其原始IP地址是否一致,這是防止客戶端欺騙的一種措施,但一般我們的IP不會有PTR記錄,打開這個選項不過是在白白浪費時間而已,不如將其關閉。

UseDNS no;

SSH限制IP登錄幾種方法:

1、修改 etc/hosts.allow 和 etc/hosts.deny 文件;

2、修改 /etc/ssh/sshd_config 文件,加入 Allowusers:用戶名@IP(只允許某用戶從哪個Ip登錄)。

?Allowusers *@192.168.1.111?

PermissionRootLogin no

#這兩者可以保證只能從你允許的IP登錄你的服務器;


4、制作不用密碼可立即登錄的SSH用戶

利用Key不輸入密碼遠程連接主機,具體流程

1、客戶端建立兩把鑰匙:利用命令為 ssh-keygen;

2、客戶端放置好私鑰文件:將 Private Key 放在用戶主目錄內的 .ssh/ 里面即可,“.ssh”文件夾權限為700,私鑰權限為600且屬于用戶自己,否則在未來密鑰對比的過程中將出現問題。

3、將公鑰放置到服務器端中:將 Public Key 放置在你想要用來登錄的那個用戶的主目錄內的 .ssh/authorized_keys文件里,也可以用追加的方式寫入。

ssh-keygen ?[ -t ?rsa | dsa ],之后會生成公鑰和私鑰;

生成的公私鑰

將公鑰上傳到需要遠程連接的服務器上:

scp ?~/.ssh/id_rsa.pub ?zhang@192.168.203.129:~;

cat ?id_rsa.pub ?>> .ssh/authorized_keys;將公鑰寫入

.ssh 目錄的權限是700,authorized_keys權限是644

步驟關鍵:

Client必須制作出Public和Private這兩把Key,且Private Key需要放到 ~/.ssh/ 內;

Server必須要有Public Key,且放置到用戶主目錄下的 ~/.ssh/authorized_keys,同時目錄的權限(.ssh)必須是700而文件權限必須是644,同時文件的屬主和屬組都必須與該賬號吻合才行。

當你還想要登錄其他遠程主機時,只要將你的Public Key(id_rsa.pub)文件copy到其他主機上去,并且將內容添加到 ~/.ssh/authorized_keys中即可。


5、簡易安全設置

SSHD 所謂的安全其實指的是SSHD的數據是加密過的,所以它的數據在Internet上面傳遞時是比較安全的。至于SSHD這個服務本身就不是那樣安全了。所以如果要將SSHD對Internet開放可登錄的權限的話,那么,就盡量局限在幾個小范圍內的IP或主機名(如你們公司的出口IP),這很重要。

1、服務器軟件本身的設置強化:/etc/ssh/sshd_config,禁止root登錄,禁止某個用戶登錄,禁止某個用戶組登錄;

2、/etc/hosts.allow 和 /etc/hosts.deny

hosts.allow--->sshd :127.0.0.1 192.168.0.0/255.255.0.0

hosts.deny--->sshd:ALL

3、iptables數據包過濾防火墻


6、SSH服務器的高級應用

6.1、在非標準端口啟動SSH(默認端口:22)

vi ?/etc/ssh/sshd_config

# Port 22(這是默認信息)----> Port 23(修改為23端口,但一定要注意,不要將端口開在某些周知的端口上,如80那些)

或者兩端口共存,即sshd監聽這兩個端口:

Port ?22

Port ?23

非標準端口連接:

ssh ?-p ?23 ?zhang@192.168.209.129

6.2、以 rsync 進行同步鏡像備份

rsync 是一個相當棒的異地備份系統的指令,可以達到類似鏡像(mirror)的功能

rsync 第一次備份的時候需要花費比較長的時間,因為首次要備份所有的文件。但是再次備份文件的時候,僅會復制有差異的數據。這個很重要的哈!

因為 rsync ?是通過 SSH 來傳輸數據的,所以你可以針對 某個用戶制作出免密碼登錄的SSH密鑰!如此一來,往后異地備份系統就能夠自動地以 crontab 來進行備份了。

rsync ?的三種傳輸方式:

1、在本機上直接運行,用法幾乎與 cp 一模一樣,例如:

rsync ?-av ?/etc ?/tmp ?將/etc/ 的數據備份到 /tmp/etc 內

2、通過 rsh 或 ssh 的信道在Server / Client 之間進行傳輸數據,例如:

rsync -avz user@ip:/test /test #先做無秘鑰就可直接使用了

#rsync ?-av ?-e ?ssh ?user@ip:/etc ?/tmp ?將遠程Server的/etc 數據備份到本地 /tmp/etc

3、直接通過 rsync ?提供的服務(daemon)來傳輸,此時 rsync ?主機需要啟動 873 Port

你必須要在Server端啟動 rsync,看 /etc/xinetd.d/rsync;

你必須編輯 /etc/rsyncd.conf 配置文件;

你必須設置定義Client端連接的密碼數據;

在 Client端可以利用: rsync ?-av ?user@hostname::/dir/path ?/local/path ?注意是兩個冒號


rsync使用方法


rsync命令舉例

6.3、通過SSH通道加密原本無加密的服務

透過本地端的 ssh 加密聯機到遠程的服務器示意圖

重點回顧:

遠程連接服務器可以讓用戶在任何一臺計算機登錄主機,以便使用主機的資源來管理與維護主機;

Telnet與RSH都是以明文方式傳輸數據,當數據在Internet上面傳輸時較不安全;

SSH由于使用密鑰系統,因此數據在Internet上傳輸時時加密過的,所以比較安全;

但SSH還是屬于比較危險的服務,請不要對整個Internet開放SSH的可登錄權限,可利用iptables 規范可登錄的范圍;

SSH的Public Key 放在服務器端,而Private Key 放在Client端;

使用SSH時,盡量使用類似E-mail的方式來登錄,即:ssh ?username@hostname;

Client端可以比對Server傳來的Public Key的一致性,利用的文件為 ~user/.ssh/known_hosts;

SSH的Client端軟件提供SSH、SCP、SFTP等程序;

制作不需要密碼的SSH賬號時,可利用ssh-keygen ?-t ?rsa 來生成Public Key和Private Key;

上述指令所生成的Public Key必須要上傳到Server的 ~user/.ssh/authorized_keys;

rsync ?可通過SSH 的服通道或 rsync ?--daemon 的方式來連接傳輸,其主要功能可以通過類似鏡像備份來僅備份新的數據,因此傳輸數據相當快。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,967評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,273評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,870評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,742評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,527評論 6 407
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,010評論 1 322
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,108評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,250評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,769評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,656評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,853評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,371評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,103評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,472評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,717評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,487評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,815評論 2 372

推薦閱讀更多精彩內容