国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

詳解linux SSH登錄流程

發(fā)布時(shí)間:2023-05-26 09:39 來(lái)源:西部 閱讀:99 作者:西部數碼 欄目: 虛擬主機 歡迎投稿:712375056

服務(wù)器

本文給大家詳細介紹了ssh 密鑰登錄遠程服務(wù)器流程和注意事項,以下是詳細內容:

密鑰登錄比密碼登錄安全,主要是因為他使用了非對稱(chēng)加密,登錄過(guò)程中需要用到密鑰對。整個(gè)登錄流程如下:

遠程服務(wù)器持有公鑰,當有用戶(hù)進(jìn)行登錄,服務(wù)器就會(huì )隨機生成一串字符串,然后發(fā)送給正在進(jìn)行登錄的用戶(hù)。
用戶(hù)收到遠程服務(wù)器發(fā)來(lái)的字符串,使用與遠程服務(wù)器公鑰配對的私鑰對字符串進(jìn)行加密,再發(fā)送給遠程服務(wù)器。
服務(wù)器使用公鑰對用戶(hù)發(fā)來(lái)的加密字符串進(jìn)行解密,得到的解密字符串如果與第一步中發(fā)送給客戶(hù)端的隨機字符串一樣,那么判斷為登錄成功。
整個(gè)登錄的流程就是這么簡(jiǎn)單,但是在實(shí)際使用 ssh 登錄中還會(huì )碰到一些小細節,這里演示一遍 ssh 遠程登錄來(lái)展示下這些細節問(wèn)題。

生成密鑰對

使用 ssh-keygen 就可以直接生成登錄需要的密鑰對。ssh-keygen 是 Linux 下的命令,不添加任何參數就可以生成密鑰對。

 ~ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/jaychen/.ssh/id_rsa): #1
Enter passphrase (empty for no passphrase):      #2
Enter same passphrase again:          #3

執行 ssh-keygen 會(huì )出現如上的提示,在 #1 處這里提示用戶(hù)輸入生成的私鑰的名稱(chēng),如果不填,默認私鑰保存在 /home/jaychen/.ssh/id_rsa 文件中。這里要注意兩點(diǎn):

生成的密鑰,會(huì )放在執行 ssh-keygen 命令的用戶(hù)的家目錄下的 .ssh 文件夾中。即 $HOME/.ssh/ 目錄下。

生成的公鑰的文件名,通常是私鑰的文件名后面加 .pub 的后綴。

#2 處,提示輸入密碼,注意這里的密碼是用來(lái)保證私鑰的安全的。如果填寫(xiě)了密碼,那么在使用密鑰進(jìn)行登錄的時(shí)候,會(huì )讓你輸入密碼,這樣子保證了如果私鑰丟失了不至于被惡意使用。話(huà)是這么說(shuō),但是平時(shí)使用這里我都是直接略過(guò)。

#3 是重復 #2 輸入的密碼,這里就不廢話(huà)了。

生成密鑰之后,就可以在 /home/jaychen/.ssh/ 下看到兩個(gè)文件了(我這里會(huì )放在 /home/jaychen 下是因為我使用 jaychen 用戶(hù)來(lái)執行 ssh-keygen 命令)

 .ssh ls
total 16K
drwx------ 2 jaychen jaychen 4.0K 12月 7 17:57 .
drwx------ 9 jaychen jaychen 4.0K 12月 7 18:14 ..
-rw------- 1 jaychen jaychen 1.7K 12月 7 17:57 id_rsa.github
-rw-r--r-- 1 jaychen jaychen 390 12月 7 17:57 id_rsa.github.pub

 

生成的私鑰還要注意一點(diǎn):私鑰的權限應該為 rw——-,如果私鑰的權限過(guò)大,那么私鑰任何人都可以讀寫(xiě)就會(huì )變得不安全。ssh 登錄就會(huì )失敗。

首次 ssh 登錄

登錄遠程服務(wù)器的命令是

ssh 登錄用戶(hù)@服務(wù)器ip

這里開(kāi)始要注意兩個(gè)用戶(hù)的概念:

本地執行這條命令的用戶(hù),即當前登錄用戶(hù),我這里演示的用戶(hù)名稱(chēng)是 jaychen。

要登錄到遠程服務(wù)器的用戶(hù)。

在開(kāi)始登錄之前,我們要首先要把生成公鑰上傳到服務(wù)器。

公鑰的內容要保存到要登錄的用戶(hù)的家目錄下的 .ssh/authorized_keys 文件中。假設你之后要使用 root 用戶(hù)登錄遠程服務(wù)器,那么公鑰的內容應該是保存在 /root/.ssh/authorized_keys中。注意 authorized_keys 文件是可以保存多個(gè)公鑰信息的,每個(gè)公鑰以換行分開(kāi)。

上傳完畢之后,執行

ssh root@遠程服務(wù)器 ip

這個(gè)時(shí)候,如上面說(shuō)的,遠程服務(wù)器會(huì )發(fā)送一段隨機字符串回來(lái),這個(gè)時(shí)候需要使用私鑰對字符串進(jìn)行加密。而這個(gè)私鑰會(huì )去執行該命令的用戶(hù)的家目錄下的 .ssh 目錄讀取私鑰文件,默認私鑰文件為 id_rsa 文件。即 $HOME/.ssh/id_rsa 文件。假設在生成密鑰的時(shí)候對私鑰進(jìn)行了加密,那么這個(gè)時(shí)候就需要輸入密碼。

上面的流程用戶(hù)登錄的時(shí)候是不會(huì )感知的,ssh 在背后完成了所有的校驗操作,如果密鑰匹配的話(huà),那么用戶(hù)就可以直接登錄到遠程服務(wù)器,但是如果是首次登錄的話(huà),會(huì )出現類(lèi)似下面的提示:

 .ssh ssh root@192.168.1.1
The authenticity of host \'192.168.1.1 (192.168.1.1)\' can\'t be established.
ECDSA key fingerprint is SHA256:61U/SJ4n/QdR7oKT2gaHNuGxhx98saqMfzJnzA1XFZg.
Are you sure you want to continue connecting (yes/no)?

這句話(huà)的意思是,遠程服務(wù)器的真實(shí)身份無(wú)法校驗,只知道公鑰指紋(公鑰的 MD5 值)為 61U/SJ4n/QdR7oKT2gaHNuGxhx98saqMfzJnzA1XFZg,是否真的要建立連接。出現上面的提示是因為避免存在中間人攻擊。

中間人攻擊

中間人攻擊的前提是,你第一次登錄一臺遠程服務(wù)器,你除了用戶(hù)名、用戶(hù)名對應的公鑰私鑰以及服務(wù)器 ip 之外,對遠程服務(wù)器絲毫不了解的情況下。假設你 ssh 遠程登錄 192.168.1.1 的遠程主機,在連接過(guò)程中被第三者攔截,第三者假冒自己為 192.168.1.1 的主機,那么你就會(huì )直接連接到其他人的服務(wù)器上。這就是中間人攻擊。

為了避免中間人攻擊,ssh 在首次登錄的時(shí)候會(huì )返回公鑰指紋,用戶(hù)需要自己手動(dòng)去比對你要登錄的遠程服務(wù)器的公鑰的公鑰指紋和 ssh 返回的公鑰指紋是否一樣。

經(jīng)過(guò)比較公鑰指紋,確認該服務(wù)器就是你要登錄的服務(wù)器,輸入 yes 之后就可以成功登錄。整個(gè)登錄流程結束。

known_hosts 文件

第一次登錄之后,在本機的 $HOME/.ssh/ 目錄下就會(huì )生成一個(gè) known_hosts 的文件,內容類(lèi)似下面

 .ssh cat known_hosts
192.168.1.1 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOPKYWolOYTDevvBR6GV0rFcI0z/DHZizN5l/ajApsgx UcOOh61liuyBRRCIyF BR56Le0lP0Pn6nzvLjbqMqg=

這個(gè)文件記錄了遠程主機 ip 和遠程主機對應的公鑰指紋,那么在下次登錄的時(shí)候,遠程主機發(fā)送過(guò)來(lái)的公鑰指紋,直接和 known_hosts 文件中對應 ip 的公鑰指紋比較即可。

config 配置

很多時(shí)候,我們開(kāi)發(fā)可能需要連接多臺遠程服務(wù)器,并且需要配置 git 服務(wù)器的私鑰。那么這么多的服務(wù)器不能共用一套私鑰,不同的服務(wù)器應該使用不同的私鑰。但是我們從上面的連接流程可以看到,ssh 默認是去讀取 $HOME/.ssh/id_rsa 文件作為私鑰登錄的。如果想要不同的服務(wù)器使用不同的私鑰進(jìn)行登錄,那么需要在 .ssh 目錄下編寫(xiě) config 文件來(lái)進(jìn)行配置。

config 的配置很簡(jiǎn)單,只要指明哪個(gè)用戶(hù)登錄哪臺遠程服務(wù)器需要使用哪個(gè)私鑰即可。下面給出一個(gè)配置示例。

Host github.com
 User jaychen
 IdentityFile ~/.ssh/id_rsa.github
Host 192.168.1.1
 User ubuntu
 IdentityFile ~/.ssh/id_rsa.xxx

上面 config 文件字段含義如下:

Host 指明了遠程主機的 ip,除了使用 ip 地址,也可以直接使用網(wǎng)址。

User 指的是登錄遠程主機的用戶(hù)。

IdentityFile 指明使用哪個(gè)私鑰文件。

編寫(xiě)好 config 文件之后,需要把 config 文件的權限改為 rw-r–r–。如果權限過(guò)大,ssh 會(huì )禁止登錄。

更多關(guān)于云服務(wù)器,域名注冊,虛擬主機的問(wèn)題,請訪(fǎng)問(wèn)特網(wǎng)科技官網(wǎng):wap.friendlycc.com.cn

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。

人妻少妇精品视频专区| 亚洲人成人影院在线观看| 日韩精品成人无码专区免费| 99久久综合狠狠综合久久| 国产剧情AV麻豆香蕉精品| 国产偷亚洲偷欧美偷精品|