ssh 介绍 和使用 程序不挂起
目錄
SSH的安全機(jī)制
SSH的安裝
啟動(dòng)服務(wù)器的SSH服務(wù)
SSH兩種級別的遠(yuǎn)程登錄
SSH的高級應(yīng)用
Secure?Shell(SSH) 是由 IETF(The Internet Engineering Task Force) 制定的建立在應(yīng)用層基礎(chǔ)上的安全網(wǎng)絡(luò)協(xié)議。它是專為遠(yuǎn)程登錄會話(甚至可以用Windows遠(yuǎn)程登錄Linux服務(wù)器進(jìn)行文件互傳)和其他網(wǎng)絡(luò)服務(wù)提供安全性的協(xié)議,可有效彌補(bǔ)網(wǎng)絡(luò)中的漏洞。通過SSH,可以把所有傳輸?shù)臄?shù)據(jù)進(jìn)行加密,也能夠防止DNS欺騙和IP欺騙。還有一個(gè)額外的好處就是傳輸?shù)臄?shù)據(jù)是經(jīng)過壓縮的,所以可以加快傳輸?shù)乃俣取D壳耙呀?jīng)成為Linux系統(tǒng)的標(biāo)準(zhǔn)配置。
SSH只是一種協(xié)議,存在多種實(shí)現(xiàn),既有商業(yè)實(shí)現(xiàn),也有開源實(shí)現(xiàn)。本文主要介紹OpenSSH免費(fèi)開源實(shí)現(xiàn)在Ubuntu中的應(yīng)用,如果要在Windows中使用SSH,需要使用另一個(gè)軟件PuTTY。
SSH的安全機(jī)制
SSH之所以能夠保證安全,原因在于它采用了非對稱加密技術(shù)(RSA)加密了所有傳輸?shù)臄?shù)據(jù)。
傳統(tǒng)的網(wǎng)絡(luò)服務(wù)程序,如FTP、Pop和Telnet其本質(zhì)上都是不安全的;因?yàn)樗鼈冊诰W(wǎng)絡(luò)上用明文傳送數(shù)據(jù)、用戶帳號和用戶口令,很容易受到中間人(man-in-the-middle)攻擊方式的攻擊。就是存在另一個(gè)人或者一臺機(jī)器冒充真正的服務(wù)器接收用戶傳給服務(wù)器的數(shù)據(jù),然后再冒充用戶把數(shù)據(jù)傳給真正的服務(wù)器。
但并不是說SSH就是絕對安全的,因?yàn)樗旧硖峁﹥煞N級別的驗(yàn)證方法:
第一種級別(基于口令的安全驗(yàn)證):只要你知道自己帳號和口令,就可以登錄到遠(yuǎn)程主機(jī)。所有傳輸?shù)臄?shù)據(jù)都會被加密,但是不能保證你正在連接的服務(wù)器就是你想連接的服務(wù)器。可能會有別的服務(wù)器在冒充真正的服務(wù)器,也就是受到“中間人攻擊”這種方式的攻擊。
第二種級別(基于密鑰的安全驗(yàn)證):你必須為自己創(chuàng)建一對密鑰,并把公鑰放在需要訪問的服務(wù)器上。如果你要連接到SSH服務(wù)器上,客戶端軟件就會向服務(wù)器發(fā)出請求,請求用你的密鑰進(jìn)行安全驗(yàn)證。服務(wù)器收到請求之后,先在該服務(wù)器上你的主目錄下尋找你的公鑰,然后把它和你發(fā)送過來的公鑰進(jìn)行比較。如果兩個(gè)密鑰一致,服務(wù)器就用公鑰加密“質(zhì)詢”(challenge)并把它發(fā)送給客戶端軟件。客戶端軟件收到“質(zhì)詢”之后就可以用你的私鑰在本地解密再把它發(fā)送給服務(wù)器完成登錄。與第一種級別相比,第二種級別不僅加密所有傳輸?shù)臄?shù)據(jù),也不需要在網(wǎng)絡(luò)上傳送口令,因此安全性更高,可以有效防止中間人攻擊。
SSH的安裝
SSH分為客戶端 openssh-client 和服務(wù)器 openssh-server,可以利用以下命令確認(rèn)電腦上是否安裝了客戶端和服務(wù)器。
dpkg -l | grep ssh如果只是想遠(yuǎn)程登陸別的機(jī)器只需要安裝客戶端(Ubuntu默認(rèn)安裝了客戶端),如果要開放本機(jī)的SSH服務(wù)就需要安裝服務(wù)器。
sudo apt-get install openssh-client
sudo apt-get install openssh-server
啟動(dòng)服務(wù)器的SSH服務(wù)
首先確認(rèn)ssh-server是否已經(jīng)啟動(dòng)了
ps -e | grep ssh如圖,sshd 表示ssh-server已經(jīng)啟動(dòng)了。如果沒有啟動(dòng),可以使用如下命令啟動(dòng):
sudo /etc/init.d/ssh start停止和重啟ssh服務(wù)的命令如下:
sudo /etc/init.d/ssh stop #server停止ssh服務(wù)
sudo /etc/init.d/ssh restart #server重啟ssh服務(wù)
接下來就可以進(jìn)行使用客戶機(jī)遠(yuǎn)程登錄服務(wù)器了~
SSH兩種級別的遠(yuǎn)程登錄
一、口令登錄
口令登錄非常簡單,只需要一條命令,命令格式為:?ssh 客戶端用戶名@服務(wù)器ip地址??eg:
ssh ldz@192.168.0.1如果需要調(diào)用圖形界面程序可以使用?-X 選項(xiàng)
ssh -X ldz@192.168.0.1如果客戶機(jī)的用戶名和服務(wù)器的用戶名相同,登錄時(shí)可以省略用戶名。
ssh 192.168.0.1還要說明的是,SSH服務(wù)的默認(rèn)端口是22,也就是說,如果你不設(shè)置端口的話登錄請求會自動(dòng)送到遠(yuǎn)程主機(jī)的22端口。我們可以使用?-p 選項(xiàng)來修改端口號,比如連接到服務(wù)器的1234端口:
ssh -p 1234 ldz@192.168.0.1客戶機(jī)必須要知道服務(wù)器的ip地址。可以在服務(wù)器端電腦上利用?ifconfig?命令查看該機(jī)的ip地址:
如果是第一次登錄遠(yuǎn)程主機(jī),系統(tǒng)會給出下面提示:
意思是,該遠(yuǎn)程主機(jī)的真實(shí)性無法確定,其公鑰指紋為 SHA256:FFobshqrGOachj7Xp4LsJ9+xkNBlyyOe8ZIPl7K+qQI,確定想要繼續(xù)連接嗎?
輸入yes即可。這時(shí)系統(tǒng)會提示遠(yuǎn)程主機(jī)被添加到已知主機(jī)列表。
?
然后會要求我們輸入遠(yuǎn)程主機(jī)的密碼,輸入的密碼正確就可以成功登錄了。命令提示符會修改為遠(yuǎn)程主機(jī)的提示符,現(xiàn)在開始,終端中輸入的命令都將在服務(wù)器中執(zhí)行。
我們可以通過?Ctrl+D?或者?exit?命令退出遠(yuǎn)程登錄。
?
二、公鑰登錄
每次登錄遠(yuǎn)程主機(jī)都需要輸入密碼是很不方便的,如果想要省去這一步驟,可以利用密鑰對進(jìn)行連接,還可以提高安全性。
1、在本機(jī)生成密鑰對
使用ssh-keygen命令生成密鑰對:
ssh-keygen -t rsa #-t表示類型選項(xiàng),這里采用rsa加密算法然后根據(jù)提示一步步的按enter鍵即可(其中有一個(gè)提示是要求設(shè)置私鑰口令passphrase,不設(shè)置則為空,這里看心情吧,如果不放心私鑰的安全可以設(shè)置一下),執(zhí)行結(jié)束以后會在?/home/當(dāng)前用戶 目錄下生成一個(gè)?.ssh 文件夾,其中包含私鑰文件 id_rsa?和公鑰文件 id_rsa.pub。
2、將公鑰復(fù)制到遠(yuǎn)程主機(jī)中
使用ssh-copy-id命令將公鑰復(fù)制到遠(yuǎn)程主機(jī)。ssh-copy-id會將公鑰寫到遠(yuǎn)程主機(jī)的 ~/ .ssh/authorized_key 文件中
ssh-copy-id ldz@192.168.0.1經(jīng)過以上兩個(gè)步驟,以后再登錄這個(gè)遠(yuǎn)程主機(jī)就不用再輸入密碼了。
cheers~
?
SSH的高級應(yīng)用
使用遠(yuǎn)程主機(jī)不中斷的跑程序
當(dāng)我們利用ssh在遠(yuǎn)程主機(jī)上跑程序的時(shí)候,只要關(guān)閉了終端就會中斷ssh連接,然后遠(yuǎn)程主機(jī)上正在跑的程序或者服務(wù)就會自動(dòng)停止運(yùn)行。我們可以利用?nohup + 需要運(yùn)行的程序?使運(yùn)行的程序在切斷ssh連接的時(shí)候仍然能夠繼續(xù)在遠(yuǎn)程主機(jī)中運(yùn)行。nohup即no hang up(不掛起)。
除此之外還有很多遠(yuǎn)程操作應(yīng)用,包括?數(shù)據(jù)傳輸、端口操作(將不加密的網(wǎng)絡(luò)連接綁定到ssh端口實(shí)現(xiàn)間接加密)?等等,可以參考柚子皮大神的博客:https://blog.csdn.net/pipisorry/article/details/52269785
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的ssh 介绍 和使用 程序不挂起的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SlickEdit 之缘起
- 下一篇: python微信语音转发方法_语音转发方