先在win local /mac 上拿到公鑰和私鑰,然后再把這公鑰copy 進(jìn)服務(wù)器。讓ssh 身份認(rèn)證轉(zhuǎn)化為秘鑰認(rèn)證
(mac也是一樣的)
1. 創(chuàng)建 RSA 密鑰對(duì)
第一步是在客戶端機(jī)器(通常是您的計(jì)算機(jī) win 10)上創(chuàng)建密鑰對(duì):打開powershell, 輸入
ssh-keygen
默認(rèn)情況下ssh-keygen將創(chuàng)建一個(gè) 2048 位 RSA 密鑰對(duì),這對(duì)于大多數(shù)用例來(lái)說(shuō)足夠安全(您可以選擇傳入標(biāo)志-b 4096以創(chuàng)建更大的 4096 位密鑰)。
輸入命令后,您應(yīng)該看到以下輸出:
Output
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\admin\.ssh/id_rsa):
根據(jù)括號(hào)的路徑,將其鍵入前面部分,將密鑰對(duì)保存到C:\Users\admin\.ssh/
主目錄的子目錄中(或指定備用路徑)。
如果您之前生成過(guò) SSH 密鑰對(duì),您可能會(huì)看到以下提示:
Output
/home/your_home/.ssh/id_rsa already exists.
Overwrite (y/n)?
如果您選擇覆蓋磁盤上的密鑰,您將無(wú)法再使用以前的密鑰進(jìn)行身份驗(yàn)證。選擇是時(shí)要非常小心,因?yàn)檫@是一個(gè)無(wú)法逆轉(zhuǎn)的破壞性過(guò)程。
然后您應(yīng)該會(huì)看到以下提示:
Output
Enter passphrase (empty for no passphrase):
為了方便,是可以不用加密碼的,直接Enter 就行。也可以選擇輸入安全密碼,(密碼短語(yǔ)添加了額外的安全層,以防止未經(jīng)授權(quán)的用戶登錄)。
然后您應(yīng)該看到以下輸出:
Output
Your identification has been saved in /your_home/.ssh/id_rsa.
Your public key has been saved in /your_home/.ssh/id_rsa.pub.
The key fingerprint is:
a9:49:2e:2a:5e:33:3e:a9:de:4e:77:11:58:b6:90:26 username@remote_host
The key's randomart image is:
+--[ RSA 2048]----+
| ..o |
| E o= . |
| o. o |
| .. |
| ..S |
| o o. |
| =o.+. |
|. =++.. |
|o=++. |
+-----------------+
您現(xiàn)在在本地~/.ssh 下就會(huì)擁有可用于身份驗(yàn)證的公鑰(id_rsa.pub) 和 私鑰(id_rsa)。
下一步是將公鑰(id_rsa.pub)放在您的服務(wù)器上,以便您可以使用基于 SSH 密鑰的身份驗(yàn)證來(lái)登錄。
- 如果還有其他設(shè)備,比如 mac, 那么直接將這個(gè)**私鑰(id_rsa)**放進(jìn)對(duì)應(yīng)的~/.ssh 下就可以直接用了。
2. 手動(dòng)復(fù)制公鑰
如果您沒有基于密碼的 SSH 訪問服務(wù)器的可用權(quán)限,則必須手動(dòng)完成上述過(guò)程。
目標(biāo):我們將手動(dòng)將您的id_rsa.pub
(公鑰)文件內(nèi)容附加到遠(yuǎn)程服務(wù)器上~/.ssh/authorized_keys
的文件中。
要顯示密鑰的內(nèi)容id_rsa.pub,請(qǐng)?jiān)诒镜赜?jì)算機(jī)中鍵入:(或者直接用記事本打開也行,)
cat ~/.ssh/id_rsa.pub
您將看到密鑰的內(nèi)容,看起來(lái)應(yīng)該是這樣的:
Output
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9HgH1JLknLLx44+tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ8SeeM8wzytsY+dVGcBxF6N4JS+zVk5eMcV385gG3Y6ON3EG112n6d+SMXY0OEBIcO6x+PnUSGHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B+ZVIpSDfki9UVKzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G/12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZISvAcywB9GVqNAVE+ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77+xiFxgI5QSZX3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1nUhLuJ0X/vh2xPff6SQ1BL/zkOhvJCACK6Vb15mDOeCSq54Cr7kvS46itMosi/uS66+PujOO+xt/2FWYepz6ZlN70bRly57Q06J+ZJoc9FfBCbCyYH7U/ASsmY095ywPsBo1XQ9PqhnN1/YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWhcrRf4G2fJLRcGUr9q8/lERo9oxRm5JFX6TCmj6kmiFqv+Ow9gI0x8GvaQ== demo@test
- 使用可用的任何方法訪問遠(yuǎn)程主機(jī),并找到或者創(chuàng)建目錄 ~/.ssh
一旦您可以訪問您在遠(yuǎn)程服務(wù)器上的帳戶,您應(yīng)該確保遠(yuǎn)程服務(wù)器的~/.ssh目錄存在。
此命令將在必要時(shí)創(chuàng)建目錄,如果目錄已存在,則不執(zhí)行任何操作:
mkdir -p ~/.ssh
- 在此目錄中創(chuàng)建或修改文件authorized_keys, 為了加入id_rsa.pub 到authorized_keys
現(xiàn)在,您可以在此目錄中創(chuàng)建或修改文件authorized_keys。您可以將文件的內(nèi)容添加id_rsa.pub到authorized_keys文件的末尾,必要時(shí)使用以下命令創(chuàng)建它:
echo id_rsa.pub>> ~/.ssh/authorized_keys
>>
是追加的意思
在上述命令中,將id_rsa.pub內(nèi)容輸出追加到~/.ssh/authorized_keys。
- 查看authorized_keys 是否加入了id_rsa.pub
cat ~/.ssh/authorized_keys
得到的應(yīng)該是跟上面一樣的一串文字
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9HgH1JLknLLx44+tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ8SeeM8wzytsY+dVGcBxF6N4JS+zVk5eMcV385gG3Y6ON3EG112n6d+SMXY0OEBIcO6x+PnUSGHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B+ZVIpSDfki9UVKzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G/12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZISvAcywB9GVqNAVE+ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77+xiFxgI5QSZX3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1nUhLuJ0X/vh2xPff6SQ1BL/zkOhvJCACK6Vb15mDOeCSq54Cr7kvS46itMosi/uS66+PujOO+xt/2FWYepz6ZlN70bRly57Q06J+ZJoc9FfBCbCyYH7U/ASsmY095ywPsBo1XQ9PqhnN1/YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWhcrRf4G2fJLRcGUr9q8/lERo9oxRm5JFX6TCmj6kmiFqv+Ow9gI0x8GvaQ== demo@test
最后,我們將確保~/.ssh目錄和authorized_keys文件具有適當(dāng)?shù)臋?quán)限集:
chmod -R go= ~/.ssh
這遞歸地刪除目錄的所有“組”和“其他”權(quán)限~/.ssh/。
直接ssh命令登錄
ssh 是怎么找到秘鑰 id-rsa 的?
事實(shí)上,ssh xxx@11.11.11.01 的時(shí)候,其中有指定的命令–identity_file, 也就是身份認(rèn)證,默認(rèn)會(huì)在本地路徑~/.ssh/
優(yōu)先找秘鑰id-rsa
,作為認(rèn)證方式,找不到就讓你輸入密碼。
直接登錄
ssh xxx@11.11.11.01
如果前面 Enter passphrase
階段有寫密碼,那么接下來(lái)輸入的密碼就是這個(gè)用于保護(hù)秘鑰的密碼。
如果前面Enter passphrase
階段密碼為空,那么就直接登錄上去了。
vscode 使用 ssh密鑰 (key) 來(lái)連接到遠(yuǎn)程Linux上
添加配置文件
目的:配置 VSCode 連接遠(yuǎn)程服務(wù)器的一些基本信息。
1、點(diǎn)擊左側(cè)的 “遠(yuǎn)程資源管理器” 圖標(biāo),點(diǎn)擊右上角的小齒輪(設(shè)置)
2、在彈出來(lái)的窗口中,選擇第一個(gè) config 文件打開,參考下圖,填寫對(duì)應(yīng)信息
加入配置:IdentityFile ~\.ssh\id_rsa
保存即可
# Read more about SSH config files: https://linux.die.net/man/5/ssh_config
Host test1
HostName 11.11.11.11
User xxx
Port 22
IdentityFile ~\.ssh\id_rsa
ForwardAgent yes
# 有需要可以加 第二個(gè)服務(wù)器
Host test2
HostName 11.11.11.12
User xxx
Port 22
IdentityFile ~\.ssh\id_rsa
ForwardAgent yes
3.重啟vscode,就可以在remote ,輸入服務(wù)器密碼,就可以在remote Explorer 下的SSH 下看到你配置的服務(wù)器名稱了。右鍵選擇連接就可以。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-446305.html
秘鑰:https://www.digitalocean.com/community/tutorials/how-to-set-up-ssh-keys-on-debian-9
vscode 配置: https://blog.csdn.net/surfirst/article/details/114311394文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-446305.html
到了這里,關(guān)于vscode SSH 保存密碼自動(dòng)登錄服務(wù)器vs code的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!