黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 為SSH設(shè)置密鑰的方法

為SSH設(shè)置密鑰的方法

更新時(shí)間:2022-02-09 09:41:59 來源:動(dòng)力節(jié)點(diǎn) 瀏覽3475次

為 SSH 設(shè)置密鑰

當(dāng)我們與遠(yuǎn)程 Git 服務(wù)器(例如 GitHub)交互時(shí),我們必須在請求中包含憑據(jù)。這證明我們是一個(gè)特定的 GitHub 用戶,他們可以做任何我們要求做的事情。

Git 可以使用 HTTPS 或 SSH 這兩種協(xié)議之一與遠(yuǎn)程服務(wù)器通信,并且不同的協(xié)議使用不同的憑據(jù)。

在這里,我們描述了 SSH 協(xié)議的憑據(jù)設(shè)置。如果您不確定是使用 HTTPS 還是 SSH,請閱讀HTTPS 與 SSH。從現(xiàn)在開始,我們假設(shè)您已有意選擇設(shè)置 SSH 密鑰。

1.SSH 密鑰

與單獨(dú)使用密碼相比,SSH 密鑰提供了一種更安全的登錄服務(wù)器方式。雖然最終可以通過蠻力攻擊破解密碼,但僅靠蠻力幾乎不可能破譯 SSH 密鑰。生成密鑰對會(huì)為您提供兩個(gè)長字符串:公鑰和私鑰。您可以將公鑰放在任何服務(wù)器上(例如 GitHub!),然后通過使用已經(jīng)擁有私鑰的客戶端(您的計(jì)算機(jī)!)連接到它來解鎖它。當(dāng)兩者匹配時(shí),系統(tǒng)無需密碼即可解鎖。您可以通過使用密碼保護(hù)私鑰來進(jìn)一步提高安全性。

改編自GitHub和Digital Ocean提供的說明。

2.SSH 概述和建議

必須發(fā)生的事情的高級(jí)概述:

創(chuàng)建公私 SSH 密鑰對。從字面上看,2 個(gè)特殊文件,在一個(gè)特殊的地方。(可選)使用密碼加密私鑰(最佳實(shí)踐)。

將私鑰添加到您的 ssh-agent。如果您使用密碼保護(hù)它,您可能需要額外的配置。

將您的公鑰添加到您的 GitHub 個(gè)人資料中。

建議:

如果您是編程和 shell 的新手,起初您可能會(huì)發(fā)現(xiàn) HTTPS 更容易(第9章)。您以后可以隨時(shí)切換到 SSH。您可以使用計(jì)算機(jī) A 中的一種方法和計(jì)算機(jī) B 中的另一種方法。

您應(yīng)該定期更換您的 SSH 密鑰。一年一次之類的。

最佳做法是使用密碼保護(hù)您的私鑰。這會(huì)使設(shè)置和使用變得更加困難,因此,如果您(還)還沒有準(zhǔn)備好,請不要使用密碼或認(rèn)真考慮改用 HTTPS。

不要為了只有一對密鑰,在多臺(tái)計(jì)算機(jī)上重復(fù)使用而做奇怪的體操。您可能應(yīng)該每臺(tái)計(jì)算機(jī)都有一個(gè)密鑰(我這樣做)。有些人甚至每臺(tái)計(jì)算機(jī)、每項(xiàng)服務(wù)都有一個(gè)密鑰(我不這樣做)。

將多個(gè)公鑰與您的 GitHub 帳戶關(guān)聯(lián)是正常的。例如,您連接的每臺(tái)計(jì)算機(jī)都有一個(gè)公鑰。

3.你已經(jīng)有鑰匙了嗎?

您可以從 RStudio 或 shell 進(jìn)行檢查。

全球建議:如果您確實(shí)有現(xiàn)有的密鑰,但不知道它們來自哪里或?yàn)槭裁磩?chuàng)建它們,您應(yīng)該認(rèn)真考慮創(chuàng)建一個(gè)新的 SSH 密鑰對。由您決定是否/如何刪除舊的。但不要讓這阻止您創(chuàng)建新密鑰并繼續(xù)前進(jìn)。

(1)來自 RStudio

轉(zhuǎn)到工具 > 全局選項(xiàng)...> Git/SVN。~/.ssh/id_rsa如果您在 SSH RSA 密鑰框中看到類似內(nèi)容,則您肯定有現(xiàn)有的密鑰。

警告:RStudio 僅查找名為id_rsaand的密鑰對id_rsa.pub。這是有道理的,因?yàn)閺臍v史上看,這是最常見的。

然而,現(xiàn)在 GitHub 和 GitLab 都在鼓勵(lì)用戶使用 Ed25519 算法生成 SSH 密鑰,這會(huì)產(chǎn)生一個(gè)名為id_ed25519and的密鑰對id_ed25519.pub。在撰寫本文時(shí),RStudio 不會(huì)顯示這樣的密鑰對,這可能會(huì)造成混淆。因此,最好同時(shí)檢查 shell 中的現(xiàn)有密鑰。

(2)從外殼

轉(zhuǎn)到外殼(附錄A)。

列出現(xiàn)有鍵:

ls -al ~/.ssh/

如果您被告知~/.ssh/不存在,則說明您沒有 SSH 密鑰!

如果您看到id_rsa.pubandid_rsa或id_ed25519and之類的一對文件id_ed25519.pub,則您已經(jīng)有了一個(gè)密鑰對。典型的模式是id_FOO.pub(公鑰)和id_FOO(私鑰),其中FOO反映了密鑰類型。如果您樂于使用現(xiàn)有密鑰,請?zhí)劣嘘P(guān)向 ssh-agent 和 GitHub 添加密鑰的部分。

4.創(chuàng)建 SSH 密鑰對

(1)選項(xiàng) 1:從 RStudio 設(shè)置

轉(zhuǎn)到工具 > 全局選項(xiàng)...> Git/SVN > 創(chuàng)建 RSA 密鑰...。

RStudio 會(huì)提示您輸入密碼。它是可選的,但也是最佳實(shí)踐。使用受密碼保護(hù)的密鑰配置系統(tǒng)以實(shí)現(xiàn)平穩(wěn)運(yùn)行會(huì)引入更多移動(dòng)部件。如果您完全是新手,請?zhí)^密碼(或使用 HTTPS!)并在下次您對系統(tǒng)配置更熟悉時(shí)實(shí)施它。起初我沒有使用密碼,但現(xiàn)在我使用了,并將其記錄在密碼管理器中。

單擊“創(chuàng)建”,RStudio 將生成一個(gè) SSH 密鑰對,存儲(chǔ)在文件~/.ssh/id_rsa和~/.ssh/id_rsa.pub.

請注意,RStudio 目前只生成 RSA 密鑰,而 GitHub 和 GitLab 的標(biāo)準(zhǔn)建議是使用 Ed25519 密鑰。如果您想遵守該建議,請暫時(shí)在 shell 中生成您的密鑰。

(2)選項(xiàng) 2:從 shell 設(shè)置

像這樣創(chuàng)建密鑰對,但替換對您有意義的注釋,特別是如果您的生活中有多個(gè) SSH 密鑰。考慮與您的 GitHub 帳戶關(guān)聯(lián)的電子郵件或您的計(jì)算機(jī)名稱或某種組合,例如 your_email@example.comormacbook-pro或jane-2020-macbook-pro。

ssh-keygen -t ed25519 -C "DESCRIPTIVE-COMMENT"

如果您的系統(tǒng)似乎太舊而無法支持 Ed25519 算法,請改為執(zhí)行以下操作:

ssh-keygen -t rsa -b 4096 -C "DESCRIPTIVE-COMMENT"

接受將密鑰保存在默認(rèn)位置的建議。只需在此處按 Enter:

Enter file in which to save the key (/Users/jenny/.ssh/id_ed25519):

您可以選擇使用密碼保護(hù)密鑰。它是可選的,但也是最佳實(shí)踐。使用受密碼保護(hù)的密鑰配置系統(tǒng)以實(shí)現(xiàn)平穩(wěn)運(yùn)行會(huì)引入更多移動(dòng)部件。如果您完全是新手,請?zhí)^密碼短語并在下次對系統(tǒng)配置更熟悉時(shí)實(shí)施它。起初我沒有使用密碼,但現(xiàn)在我使用了,并將其記錄在密碼管理器中。

Enter passphrase (empty for no passphrase):
Enter same passphrase again: 

該過程現(xiàn)在應(yīng)該完成并且應(yīng)該看起來像這樣:

~ % ssh-keygen -t ed25519 -C "jenny-2020-mbp"        
Generating public/private ed25519 key pair.
Enter file in which to save the key (/Users/jenny/.ssh/id_ed25519): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /Users/jenny/.ssh/id_ed25519.
Your public key has been saved in /Users/jenny/.ssh/id_ed25519.pub.
The key fingerprint is:
SHA256:XUEaY/elhcQJz3M9jx/SdC0zh10lCA7uNpqgkm5G/R0 jenny-2020-mbp
The key's randomart image is:
+--[ED25519 256]--+
|        . =o==oo*|
|       . + =.=+B+|
|        . o . @oB|
|       . . .  oO+|
|  . .   S .  ..o.|
| o o . E .    ...|
|+ . . + .       .|
|.+   . .         |
|o.               |
+----[SHA256]-----+

(3)向 ssh-agent 添加密鑰

告訴您的 ssh-agent 有關(guān)密鑰,尤其是設(shè)置它以管理密碼(如果您選擇設(shè)置一個(gè))。

事情在這里變得有點(diǎn)特定于操作系統(tǒng)。如有疑問,請查閱GitHub 的 SSH 說明,該說明適用于 Mac、Windows 和 Linux。它還比我能解釋更多不尋常的情況。

1)Mac 操作系統(tǒng)

確保 ssh-agent 已啟用。這是成功的樣子(pid會(huì)有所不同):

~ % eval "$(ssh-agent -s)"
Agent pid 15360

有時(shí)這會(huì)像這樣失敗:

~ % eval "$(ssh-agent -s)"
mkdtemp: private socket dir: No such file or directory

類似的失敗可能會(huì)報(bào)告為“權(quán)限被拒絕”。您應(yīng)該以超級(jí)用戶身份再試一次。完成后不要忘記使用exit回到您的普通用戶帳戶!

~ % sudo su
Password:
sh-3.2# eval "$(ssh-agent -s)"
Agent pid 15385
sh-3.2# exit
exit

將您的密鑰添加到 ssh 代理。如果您設(shè)置了密碼,您將在這里受到挑戰(zhàn)。給它。該-K選項(xiàng)將您的密碼存儲(chǔ)在鑰匙串中。

~ % ssh-add -K ~/.ssh/id_ed25519
Enter passphrase for /Users/jenny/.ssh/id_ed25519: 
Identity added: /Users/jenny/.ssh/id_ed25519 (jenny-2020-mbp)

如果您使用的是 macOS Sierra 10.12.2 及更高版本,則需要再做一件事。創(chuàng)建一個(gè)~/.ssh/config包含以下內(nèi)容的文件:

Host *
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_ed25519

UseKeychain如果您沒有使用密碼短語,您可以省略該行。但如果你這樣做了,這應(yīng)該將你的密碼永久存儲(chǔ)在鑰匙串中。否則,您每次登錄時(shí)都必須輸入它。有用的 StackOverflow 線程:如何將我的 SSH 私鑰永久添加到 Keychain,以便它自動(dòng)可用于 ssh?.

2)窗口

在 Git Bash shell 中,確保 ssh-agent 正在運(yùn)行:

$ eval $(ssh-agent -s)
Agent pid 59566

添加您的密鑰,用正確的名稱替換您的密鑰。

$ ssh-add ~/.ssh/id_ed25519

3)Linux

在 shell 中,確保 ssh-agent 正在運(yùn)行:

$ eval "$(ssh-agent -s)"
Agent pid 59566

添加您的密鑰,用正確的名稱替換您的密鑰。

ssh-add ~/.ssh/id_ed25519

5.向 GitHub 提供公鑰

現(xiàn)在我們將您的公鑰副本存儲(chǔ)在 GitHub 上。

(1)RStudio 到剪貼板

轉(zhuǎn)到工具 > 全局選項(xiàng)...> Git/SVN。如果您的密鑰對命名為id_rsa.puband id_rsa,RStudio 將看到它并提供“查看公鑰”。這樣做并接受復(fù)制到剪貼板的提議。

如果您的密鑰對命名不同,例如id_ed25519.puband id_ed25519,您將不得不以另一種方式復(fù)制公鑰。

(2)Shell 到剪貼板

將公鑰復(fù)制到剪貼板上。例如,~/.ssh/id_ed25519.pub在編輯器中打開并將內(nèi)容復(fù)制到剪貼板。或者在命令行執(zhí)行以下操作之一:

蘋果系統(tǒng):pbcopy < ~/.ssh/id_ed25519.pub
視窗:clip < ~/.ssh/id_ed25519.pub
Linux:xclip -sel clip < ~/.ssh/id_ed25519.pub
Linux:如果需要,xclip通過apt-get或安裝yum。例如,sudo apt-get install xclip。

(3)在 GitHub 上

現(xiàn)在我們向 GitHub 注冊公鑰。單擊右上角的個(gè)人資料圖片,然后轉(zhuǎn)到“設(shè)置”>“SSH 和 GPG 密鑰”。單擊“新建 SSH 密鑰”。將您的公鑰粘貼到“密鑰”框中。給它一個(gè)信息性標(biāo)題,大概是在創(chuàng)建密鑰期間重復(fù)您在上面使用的描述性注釋。單擊“添加 SSH 密鑰”。

理論上,我們完成了!您可以使用它ssh -T git@github.com來測試您與 GitHub 的連接。如果大家想了解更多相關(guān)知識(shí),可以關(guān)注一下動(dòng)力節(jié)點(diǎn)的SSH整合視頻教程,里面有更豐富的知識(shí)在等著大家去學(xué)習(xí)哦。

提交申請后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 久久曹| 中国女人free性hd国浯 | 日本tv欧美tv天堂 | 在线观看免费精品国产 | 成人高清在线观看 | 日韩影视在线观看 | 黄漫无遮挡免费网站3d | 华人欧美国产在线精品 | 久草香蕉视频 | 免费黄色小视频在线观看 | 可以免费看的毛片 | 久久996re热这里有精品 | 香蕉视频最新 | 亚洲免费精品视频 | 国产一国产一级毛片视频在线 | 九九久久国产精品 | 亚洲精品动漫在线观看 | 国产色视频在线观看免费 | 日韩激情视频网站 | 欧美在线免费 | 国产在线麻豆精品观看 | 国产亚洲精品综合在线网址 | 26uuu另类欧美亚洲日本 | 综合自拍亚洲综合图不卡区 | 日韩视频一区二区三区 | 成人在线观看不卡 | 欧美日韩综合高清一区二区 | 欧美激情_区二区三区 | 欧美日产国产亚洲综合图区一 | 精品99视频| 97人洗澡人人澡人人爽人人 | 二区久久国产乱子伦免费精品 | 最新欧美在线 | 成片免费的禁v影片 | 日本免费全黄一级裸片视频 | 亚洲伊人色欲综合网 | 成人片在线视频 | 亚洲色图在线观看视频 | 美女下面粉嫩粉嫩冒白浆高清 | 一个人看的www在线 一个人看的www在线播放 | 欧美专区亚洲专区 |