金能智 文洮 安文婷 楊博超
摘 ?要:高性能計算集群是當前較為先進的計算體系,高性能計算的快速發(fā)展已為其他科學技術的發(fā)展提供了越來越廣的支撐,其安全性顯得非常重要。SSH(Secure Shell)作為一種通用的、基于軟件的安全訪問遠程服務器的網絡協(xié)議,已廣泛應用于Linux高性能計算集群,本文以甘肅省計算中心高性能計算集群為實驗對象,以OpenSSH為例,介紹了SSH的工作原理,OpenSSH的安裝和配置,以及遠程登錄管理服務器,對于利用SSH遠程管理服務器具有一定的指導意義。
關鍵詞:Linux;高性能計算;集群;SSH
中圖分類號:TP309.7 ? ? ?文獻標識碼:A 文章編號:2096-4706(2019)13-0177-03
Research on SSH Secure Remote Login of Linux High Performance
Computing Cluster
JIN Nengzhi,WEN Tao,AN Wenting,YANG Bochao
(Gansu Computing Center,Lanzhou ?730030,China)
Abstract:High performance computing clusters are currently more advanced computing systems. The rapid development of high-performance computing has provided more and more support for the development of other science and technology,and its security is very important. SSH (Secure Shell) is a general-purpose,software-based network protocol for securely accessing remote servers. It has been widely used in Linux high performance computing clusters. This article takes the high performance computing cluster of Gansu Computing Center as the experimental object. Taking OpenSSH as an example,it introduces the working principle of SSH,the installation and configuration of OpenSSH,and the remote login management server,which have certain guiding significance for remotely managing servers by SSH.
Key words:Linux;high performance computing;clusters;SSH
0 ?引 ?言
高性能計算是改造世界的第三大科學研究方法[1],是科技創(chuàng)新的重要手段,在應對重大挑戰(zhàn)性問題,促進傳統(tǒng)產業(yè)轉型升級,提高人民生活水平,促進重大科學發(fā)現(xiàn)等方面發(fā)揮著不可替代的作用,是研究和解決各領域挑戰(zhàn)性問題的重要手段,已上升為國家戰(zhàn)略,是國家綜合國力和科技創(chuàng)新力的重要標志,也是世界各國追逐的技術制高點[2]。高性能計算在藥物篩選、天氣預報、分子動力學、數(shù)值模擬等方面發(fā)揮著舉足輕重的作用[3,4],其安全的重要性不言而喻。高性能計算集群放置在專業(yè)機房,管理集群時,一般通過telnet、FTP等遠程方式管理,然而在這些管理過程中,數(shù)據(jù)未經過加密,傳輸過程中存在安全漏洞,選擇更為安全的遠程登陸協(xié)議尤為重要。目前,很多高性能計算集群都采用Linux操作系統(tǒng),而SSH作為一種通用的、基于軟件的安全訪問遠程服務器的網絡協(xié)議,在傳輸過程中的數(shù)據(jù)是加密的,安全性更高,已經獲得了廣泛的應用,目前已經成為Linux/Unix系統(tǒng)的標準配置,利用SSH協(xié)議可以有效的防止遠程管理高性能計算集群時的數(shù)據(jù)泄露風險[5-7]。本文以甘肅省計算中心高性能計算集群為例,從SSH的工作原理、遠程登錄的實現(xiàn)等方面探究基于Linux的高性能計算集群SSH安全遠程登錄的防護。
1 ?SSH簡介
SSH為Secure Shell的縮寫,由國際互聯(lián)網工程任務組(The Internet Engineering Task Force,簡稱IETF)制定,是目前較可靠,專為遠程登錄會話和其他網絡服務提供安全性的協(xié)議[6,7]。SSH幾乎適用于所有Linux平臺[7],廣泛用于各種服務器。
2 ?SSH的工作原理
探討SSH遠程登錄安全之前,需要了解數(shù)據(jù)加密。數(shù)據(jù)加密主要有兩種方式:
(1)對稱加密,也稱為秘鑰加密;
(2)非對稱加密,也稱公鑰加密[8]。
對稱加密,指數(shù)據(jù)的加密和解密都用同一套秘鑰,雖然加密強度高,很難破解,但所有客戶端和服務端都需要保存這套秘鑰,而一旦秘鑰泄露便保證不了數(shù)據(jù)安全[8]。
非對稱加密包含兩套秘鑰——公鑰以及私鑰,解決了這個問題。其中,公鑰用來加密,私鑰用來解密,并且通過公鑰計算不出私鑰,私鑰僅保存在服務器,而公鑰可以隨便傳遞,即使泄露也無風險[8]。
SSH協(xié)議是基于非對稱加密方法的,服務器和客戶端都會生成自己的公鑰和私鑰。SSH對數(shù)據(jù)進行加密,防止黑客攻擊,并加快傳輸速度[5-7]。
SSH提供兩種安全驗證[6,7]:
(1)口令驗證。直接使用賬號和密碼就可以登錄遠程的服務器,但是不安全,有可能被黑客攻擊,安全級別比較低。
(2)秘鑰驗證。首先需要創(chuàng)建一對密匙,分別是公鑰和私鑰,然后把公匙放在服務器上。當遠程連接SSH服務器時,客戶端就會向服務器發(fā)出用密匙進行安全驗證的請求。服務器收到請求之后進行比對。如果兩個密匙匹配,服務器就用公匙加密質詢并發(fā)送給客戶端。客戶端收到質詢之后再用私匙解密后發(fā)送給服務器。
3 ?SSH遠程登錄的安裝和配置
在Linux平臺下借助于SSH實現(xiàn)遠程管理高性能計算集群,需要在客戶端和服務器端做出相應的配置。OpenSSH是SSH協(xié)議的免費開源實現(xiàn)。OpenSSH目前的版本為OpenSSH 8.0[5]。
3.1 ?服務器端的安裝和配置
3.1.1 ?安裝
以我中心的高性能計算集群為例,安裝CentOS 6.9操作系統(tǒng)。CentOS系統(tǒng)一般默認安裝了OpenSSH。若未安裝,可以手動下載rpm包安裝,也可以利用yum安裝,操作如下:
(1)安裝SSH yum install openssh-server;
(2)啟動SSHservice sshd start;
(3)設置開機運行chkconfigsshd on。
3.1.2 ?配置
(1)SSH的配置。OpenSSH的主配置文件為/etc/ssh目錄下的sshd_config和ssh_config,shd_config是服務器的配置文件,ssh_config客戶端的配置文件。
配置服務器端:編輯sshd_config文件,以下列出了部分常用配置。
#Port 22 ?#此選項設置ssh監(jiān)聽的端口號,默認為22,也可以修改為其他端口
#Protocol 2,1 ?#此選項設置使用ssh協(xié)議的順序
#ListenAddress 0.0.0.0 ?#此選項ssh設置服務器綁定的ip地址,默認為所有可用的ip地址
#PermitRootLogin yes ?#此選項設置是否允許root登錄,默認允許,改為no,就是root遠程不能登陸,加強安全性
#PermitEmptyPasswords no ?#此選項設置是否允許空密碼的客戶登錄,默認為禁止
PasswordAuthentication yes ?#此選項設置是否使用口令認證方式。如果公鑰認證方式,將其設置為no
(2)開啟和重啟sshd服務。若sshd服務未開啟,則需通過service sshd start命令啟動SSH服務。
3.1.3 ?修改網絡參數(shù)
(1)集群所有服務器IP設置同一網段、子網掩碼和DNS等信息。
中心某服務器node1設置為:
DEVICE=eth0
BOOTPROTO=static
TYPE=Ethernet
IPADDR=10.10.10.201
NETMASK=255.255.255.0
(2)修改host文件。
編輯hosts文件:
10.10.10.201 ?node1
10.10.10.202 ?node2
10.10.10.203 ?node3
10.10.10.204 ?node4
10.10.10.205 ?node5
10.10.10.206 ?node6
10.10.10.207 ?node7
10.10.10.208 ?node8
10.10.10.221 node101
(3)在集群每臺節(jié)點上產生新的rsa公鑰和私鑰文件,并統(tǒng)一拷貝到一個authorized_keys文件中。
登錄node101,在.ssh目錄下輸入命令:
ssh-keygen-t rsa,三次回車后,該目錄下將會產生id_rsa,id_rsa.pub這2個文件。集群其他節(jié)點也使用該方式產生密鑰文件。具體操作如下:
在node101下:
cat id_rsa.pub >>authorized_keys,此命令將id_rsa.pub公鑰拷貝重命名為authorized_keys文件。
依次登錄集群其他節(jié)點,將其公鑰文件內容都拷貝到node101,命令如下:
ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.10. 10.221
然后將id_rsa.pub公鑰拷貝重命名為authorized_keys文件,命令如下:
cat id_rsa.pub >>authorized_keys
(4)授權authorized_keys文件。
登錄node101,在.ssh目錄下輸入命令:
chmod 600 authorized_keys
(5)將授權文件分配到集群其他節(jié)點上。
登錄node101,將授權文件拷貝到node1至node8,命令如下:
scp /root/.ssh/authorized_keys node1:/root/.ssh/
…
scp /root/.ssh/authorized_keys node8:/root/.ssh/
此時,高性能計算集群實現(xiàn)了SSH免密碼登錄,第一次SSH登錄時需要輸入密碼,再次訪問時即可免密碼登錄。
3.2 ?SSH遠程登陸服務器
3.2.1 ?口令登陸
假定以用戶名user,登錄遠程主機node101,SSH的默認端口是22。若sshd_config文件中設置的端口不是22,也可以使用-p端口號方式登陸。
$ ssh-p 22user@node101
如果本地用戶名與遠程用戶名一致,登錄時可以省略用戶名。
$ sshnode101
3.2.2 ?公鑰登陸
按照前文中修改服務器端的網絡參數(shù),配置服務器,生成公鑰和私鑰文件,然后將公鑰傳送到遠程服務器,此后再登錄,就不需要輸入密碼了。
4 ?結 ?論
隨著高性能計算的高速發(fā)展,其應用越來越廣泛,越來越多的學科和工程應用都離不開高性能科學計算的支撐,而其安全性就顯得十分重要,選擇更為安全的遠程登錄協(xié)議可以有效的防范高性能計算集群被攻擊,而利用SSH協(xié)議可以有效的預防遠程管理過程中的信息泄露風險。本文以甘肅省計算中心高性能計算集群為試驗對象,詳細介紹了SSH的工作原理,OpenSSH的安裝和配置,對OpenSSH遠程連接服務器具有一定的指導意義。在實際工作中,由于高性能計算集群的安全存在多方面的因素,還需考慮內核版本、操作系統(tǒng)漏洞、環(huán)境變量配置等多種因素,為高性能計算集群的安全運行和管理提供保障。
參考文獻:
[1] 陳志明.科學計算:科技創(chuàng)新的第三種方法 [J].中國科學院院刊,2012,27(2):161-166.
[2] 廖湘科,肖儂.新型高性能計算系統(tǒng)與技術 [J].中國科學:信息科學,2016,46(9):1175-1210.
[3] 臧大偉,曹政,孫凝暉.高性能計算的發(fā)展 [J].科技導報,2016,34(14):22-28.
[4] 遲學斌.國家高性能計算環(huán)境發(fā)展報告(2002-2017年) [M].北京:科學出版社,2018.
[5] 楊婧.SSH協(xié)議的研究與應用 [J].計算機與數(shù)字工程,2011,39(8):112-114.
[6] OpenSSH.Release Note [EB/OL].http://www.openssh.com/releasenotes.html,2019-06-18.
[7] Ylonen T,Lonvick C. The Secure Shell (SSH) Protocol Architecture [M].The RFC Publisher,2006.
[8] 曹金山.網絡高效安全數(shù)據(jù)傳輸方法設計 [J].現(xiàn)代電子技術,2010,33(20):107-109+113.
通訊作者:金能智(1983.01-),男,漢族,甘肅永靖人,碩士,副研究員,研究方向:高性能計算、化學信息學。