金能智 文洮 安文婷 楊博超
摘 ?要:高性能計算集群是當(dāng)前較為先進(jìn)的計算體系,高性能計算的快速發(fā)展已為其他科學(xué)技術(shù)的發(fā)展提供了越來越廣的支撐,其安全性顯得非常重要。SSH(Secure Shell)作為一種通用的、基于軟件的安全訪問遠(yuǎn)程服務(wù)器的網(wǎng)絡(luò)協(xié)議,已廣泛應(yīng)用于Linux高性能計算集群,本文以甘肅省計算中心高性能計算集群為實驗對象,以O(shè)penSSH為例,介紹了SSH的工作原理,OpenSSH的安裝和配置,以及遠(yuǎn)程登錄管理服務(wù)器,對于利用SSH遠(yuǎn)程管理服務(wù)器具有一定的指導(dǎo)意義。
關(guān)鍵詞:Linux;高性能計算;集群;SSH
中圖分類號:TP309.7 ? ? ?文獻(xiàn)標(biāo)識碼: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 ?引 ?言
高性能計算是改造世界的第三大科學(xué)研究方法[1],是科技創(chuàng)新的重要手段,在應(yīng)對重大挑戰(zhàn)性問題,促進(jìn)傳統(tǒng)產(chǎn)業(yè)轉(zhuǎn)型升級,提高人民生活水平,促進(jìn)重大科學(xué)發(fā)現(xiàn)等方面發(fā)揮著不可替代的作用,是研究和解決各領(lǐng)域挑戰(zhàn)性問題的重要手段,已上升為國家戰(zhàn)略,是國家綜合國力和科技創(chuàng)新力的重要標(biāo)志,也是世界各國追逐的技術(shù)制高點[2]。高性能計算在藥物篩選、天氣預(yù)報、分子動力學(xué)、數(shù)值模擬等方面發(fā)揮著舉足輕重的作用[3,4],其安全的重要性不言而喻。高性能計算集群放置在專業(yè)機(jī)房,管理集群時,一般通過telnet、FTP等遠(yuǎn)程方式管理,然而在這些管理過程中,數(shù)據(jù)未經(jīng)過加密,傳輸過程中存在安全漏洞,選擇更為安全的遠(yuǎn)程登陸協(xié)議尤為重要。目前,很多高性能計算集群都采用Linux操作系統(tǒng),而SSH作為一種通用的、基于軟件的安全訪問遠(yuǎn)程服務(wù)器的網(wǎng)絡(luò)協(xié)議,在傳輸過程中的數(shù)據(jù)是加密的,安全性更高,已經(jīng)獲得了廣泛的應(yīng)用,目前已經(jīng)成為Linux/Unix系統(tǒng)的標(biāo)準(zhǔn)配置,利用SSH協(xié)議可以有效的防止遠(yuǎn)程管理高性能計算集群時的數(shù)據(jù)泄露風(fēng)險[5-7]。本文以甘肅省計算中心高性能計算集群為例,從SSH的工作原理、遠(yuǎn)程登錄的實現(xiàn)等方面探究基于Linux的高性能計算集群SSH安全遠(yuǎn)程登錄的防護(hù)。
1 ?SSH簡介
SSH為Secure Shell的縮寫,由國際互聯(lián)網(wǎng)工程任務(wù)組(The Internet Engineering Task Force,簡稱IETF)制定,是目前較可靠,專為遠(yuǎn)程登錄會話和其他網(wǎng)絡(luò)服務(wù)提供安全性的協(xié)議[6,7]。SSH幾乎適用于所有Linux平臺[7],廣泛用于各種服務(wù)器。
2 ?SSH的工作原理
探討SSH遠(yuǎn)程登錄安全之前,需要了解數(shù)據(jù)加密。數(shù)據(jù)加密主要有兩種方式:
(1)對稱加密,也稱為秘鑰加密;
(2)非對稱加密,也稱公鑰加密[8]。
對稱加密,指數(shù)據(jù)的加密和解密都用同一套秘鑰,雖然加密強度高,很難破解,但所有客戶端和服務(wù)端都需要保存這套秘鑰,而一旦秘鑰泄露便保證不了數(shù)據(jù)安全[8]。
非對稱加密包含兩套秘鑰——公鑰以及私鑰,解決了這個問題。其中,公鑰用來加密,私鑰用來解密,并且通過公鑰計算不出私鑰,私鑰僅保存在服務(wù)器,而公鑰可以隨便傳遞,即使泄露也無風(fēng)險[8]。
SSH協(xié)議是基于非對稱加密方法的,服務(wù)器和客戶端都會生成自己的公鑰和私鑰。SSH對數(shù)據(jù)進(jìn)行加密,防止黑客攻擊,并加快傳輸速度[5-7]。
SSH提供兩種安全驗證[6,7]:
(1)口令驗證。直接使用賬號和密碼就可以登錄遠(yuǎn)程的服務(wù)器,但是不安全,有可能被黑客攻擊,安全級別比較低。
(2)秘鑰驗證。首先需要創(chuàng)建一對密匙,分別是公鑰和私鑰,然后把公匙放在服務(wù)器上。當(dāng)遠(yuǎn)程連接SSH服務(wù)器時,客戶端就會向服務(wù)器發(fā)出用密匙進(jìn)行安全驗證的請求。服務(wù)器收到請求之后進(jìn)行比對。如果兩個密匙匹配,服務(wù)器就用公匙加密質(zhì)詢并發(fā)送給客戶端??蛻舳耸盏劫|(zhì)詢之后再用私匙解密后發(fā)送給服務(wù)器。
3 ?SSH遠(yuǎn)程登錄的安裝和配置
在Linux平臺下借助于SSH實現(xiàn)遠(yuǎn)程管理高性能計算集群,需要在客戶端和服務(wù)器端做出相應(yīng)的配置。OpenSSH是SSH協(xié)議的免費開源實現(xiàn)。OpenSSH目前的版本為OpenSSH 8.0[5]。
3.1 ?服務(wù)器端的安裝和配置
3.1.1 ?安裝
以我中心的高性能計算集群為例,安裝CentOS 6.9操作系統(tǒng)。CentOS系統(tǒng)一般默認(rèn)安裝了OpenSSH。若未安裝,可以手動下載rpm包安裝,也可以利用yum安裝,操作如下:
(1)安裝SSH yum install openssh-server;
(2)啟動SSHservice sshd start;
(3)設(shè)置開機(jī)運行chkconfigsshd on。
3.1.2 ?配置
(1)SSH的配置。OpenSSH的主配置文件為/etc/ssh目錄下的sshd_config和ssh_config,shd_config是服務(wù)器的配置文件,ssh_config客戶端的配置文件。
配置服務(wù)器端:編輯sshd_config文件,以下列出了部分常用配置。
#Port 22 ?#此選項設(shè)置ssh監(jiān)聽的端口號,默認(rèn)為22,也可以修改為其他端口
#Protocol 2,1 ?#此選項設(shè)置使用ssh協(xié)議的順序
#ListenAddress 0.0.0.0 ?#此選項ssh設(shè)置服務(wù)器綁定的ip地址,默認(rèn)為所有可用的ip地址
#PermitRootLogin yes ?#此選項設(shè)置是否允許root登錄,默認(rèn)允許,改為no,就是root遠(yuǎn)程不能登陸,加強安全性
#PermitEmptyPasswords no ?#此選項設(shè)置是否允許空密碼的客戶登錄,默認(rèn)為禁止
PasswordAuthentication yes ?#此選項設(shè)置是否使用口令認(rèn)證方式。如果公鑰認(rèn)證方式,將其設(shè)置為no
(2)開啟和重啟sshd服務(wù)。若sshd服務(wù)未開啟,則需通過service sshd start命令啟動SSH服務(wù)。
3.1.3 ?修改網(wǎng)絡(luò)參數(shù)
(1)集群所有服務(wù)器IP設(shè)置同一網(wǎng)段、子網(wǎng)掩碼和DNS等信息。
中心某服務(wù)器node1設(shè)置為:
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é)點上產(chǎn)生新的rsa公鑰和私鑰文件,并統(tǒng)一拷貝到一個authorized_keys文件中。
登錄node101,在.ssh目錄下輸入命令:
ssh-keygen-t rsa,三次回車后,該目錄下將會產(chǎn)生id_rsa,id_rsa.pub這2個文件。集群其他節(jié)點也使用該方式產(chǎn)生密鑰文件。具體操作如下:
在node101下:
cat id_rsa.pub >>authorized_keys,此命令將id_rsa.pub公鑰拷貝重命名為authorized_keys文件。
依次登錄集群其他節(jié)點,將其公鑰文件內(nèi)容都拷貝到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)授權(quán)authorized_keys文件。
登錄node101,在.ssh目錄下輸入命令:
chmod 600 authorized_keys
(5)將授權(quán)文件分配到集群其他節(jié)點上。
登錄node101,將授權(quán)文件拷貝到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遠(yuǎn)程登陸服務(wù)器
3.2.1 ?口令登陸
假定以用戶名user,登錄遠(yuǎn)程主機(jī)node101,SSH的默認(rèn)端口是22。若sshd_config文件中設(shè)置的端口不是22,也可以使用-p端口號方式登陸。
$ ssh-p 22user@node101
如果本地用戶名與遠(yuǎn)程用戶名一致,登錄時可以省略用戶名。
$ sshnode101
3.2.2 ?公鑰登陸
按照前文中修改服務(wù)器端的網(wǎng)絡(luò)參數(shù),配置服務(wù)器,生成公鑰和私鑰文件,然后將公鑰傳送到遠(yuǎn)程服務(wù)器,此后再登錄,就不需要輸入密碼了。
4 ?結(jié) ?論
隨著高性能計算的高速發(fā)展,其應(yīng)用越來越廣泛,越來越多的學(xué)科和工程應(yīng)用都離不開高性能科學(xué)計算的支撐,而其安全性就顯得十分重要,選擇更為安全的遠(yuǎn)程登錄協(xié)議可以有效的防范高性能計算集群被攻擊,而利用SSH協(xié)議可以有效的預(yù)防遠(yuǎn)程管理過程中的信息泄露風(fēng)險。本文以甘肅省計算中心高性能計算集群為試驗對象,詳細(xì)介紹了SSH的工作原理,OpenSSH的安裝和配置,對OpenSSH遠(yuǎn)程連接服務(wù)器具有一定的指導(dǎo)意義。在實際工作中,由于高性能計算集群的安全存在多方面的因素,還需考慮內(nèi)核版本、操作系統(tǒng)漏洞、環(huán)境變量配置等多種因素,為高性能計算集群的安全運行和管理提供保障。
參考文獻(xiàn):
[1] 陳志明.科學(xué)計算:科技創(chuàng)新的第三種方法 [J].中國科學(xué)院院刊,2012,27(2):161-166.
[2] 廖湘科,肖儂.新型高性能計算系統(tǒng)與技術(shù) [J].中國科學(xué):信息科學(xué),2016,46(9):1175-1210.
[3] 臧大偉,曹政,孫凝暉.高性能計算的發(fā)展 [J].科技導(dǎo)報,2016,34(14):22-28.
[4] 遲學(xué)斌.國家高性能計算環(huán)境發(fā)展報告(2002-2017年) [M].北京:科學(xué)出版社,2018.
[5] 楊婧.SSH協(xié)議的研究與應(yīng)用 [J].計算機(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] 曹金山.網(wǎng)絡(luò)高效安全數(shù)據(jù)傳輸方法設(shè)計 [J].現(xiàn)代電子技術(shù),2010,33(20):107-109+113.
通訊作者:金能智(1983.01-),男,漢族,甘肅永靖人,碩士,副研究員,研究方向:高性能計算、化學(xué)信息學(xué)。