自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

使用公鑰/私鑰對(duì)設(shè)定免密的Linux登錄方式

系統(tǒng) Linux
使用一組公鑰/私鑰對(duì)讓你不需要密碼登錄到遠(yuǎn)程 Linux 系統(tǒng)或使用 ssh 運(yùn)行命令,這會(huì)非常方便,但是設(shè)置過(guò)程有點(diǎn)復(fù)雜。下面是幫助你的方法和腳本。

[[313585]]

使用一組公鑰/私鑰對(duì)讓你不需要密碼登錄到遠(yuǎn)程 Linux 系統(tǒng)或使用 ssh 運(yùn)行命令,這會(huì)非常方便,但是設(shè)置過(guò)程有點(diǎn)復(fù)雜。下面是幫助你的方法和腳本。

Linux 系統(tǒng)上設(shè)置一個(gè)允許你無(wú)需密碼即可遠(yuǎn)程登錄或運(yùn)行命令的帳戶(hù)并不難,但是要使它正常工作,你還需要掌握一些繁瑣的細(xì)節(jié)。在本文,我們將完成整個(gè)過(guò)程,然后給出一個(gè)可以幫助處理瑣碎細(xì)節(jié)的腳本。

設(shè)置好之后,如果希望在腳本中運(yùn)行 ssh 命令,尤其是希望配置自動(dòng)運(yùn)行的命令,那么免密訪(fǎng)問(wèn)特別有用。

需要注意的是,你不需要在兩個(gè)系統(tǒng)上使用相同的用戶(hù)帳戶(hù)。實(shí)際上,你可以把公用密鑰用于系統(tǒng)上的多個(gè)帳戶(hù)或多個(gè)系統(tǒng)上的不同帳戶(hù)。

設(shè)置方法如下。

在哪個(gè)系統(tǒng)上啟動(dòng)?

首先,你需要從要發(fā)出命令的系統(tǒng)上著手。那就是你用來(lái)創(chuàng)建 ssh 密鑰的系統(tǒng)。你還需要可以訪(fǎng)問(wèn)遠(yuǎn)程系統(tǒng)上的帳戶(hù)并在其上運(yùn)行這些命令。

為了使角色清晰明了,我們將場(chǎng)景中的第一個(gè)系統(tǒng)稱(chēng)為 “boss”,因?yàn)樗鼘l(fā)出要在另一個(gè)系統(tǒng)上運(yùn)行的命令。

因此,命令提示符如下:

  1. boss$

如果你還沒(méi)有在 boss 系統(tǒng)上為你的帳戶(hù)設(shè)置公鑰/私鑰對(duì),請(qǐng)使用如下所示的命令創(chuàng)建一個(gè)密鑰對(duì)。注意,你可以在各種加密算法之間進(jìn)行選擇。(一般使用 RSA 或 DSA。)注意,要在不輸入密碼的情況下訪(fǎng)問(wèn)系統(tǒng),你需要在下面的對(duì)話(huà)框中的兩個(gè)提示符出不輸入密碼。

如果你已經(jīng)有一個(gè)與此帳戶(hù)關(guān)聯(lián)的公鑰/私鑰對(duì),請(qǐng)?zhí)^(guò)此步驟。

  1. boss$ ssh-keygen -t rsa
  2. Generating public/private rsa key pair.
  3. Enter file in which to save the key (/home/myself/.ssh/id_rsa):
  4. Enter passphrase (empty for no passphrase): <== 按下回車(chē)鍵即可
  5. Enter same passphrase again: <== 按下回車(chē)鍵即可
  6. Your identification has been saved in /home/myself/.ssh/id_rsa.
  7. Your public key has been saved in /home/myself/.ssh/id_rsa.pub.
  8. The key fingerprint is:
  9. SHA256:1zz6pZcMjA1av8iyojqo6NVYgTl1+cc+N43kIwGKOUI myself@boss
  10. The key's randomart image is:
  11. +---[RSA 3072]----+
  12. | . .. |
  13. | E+ .. . |
  14. | .+ .o + o |
  15. | ..+.. .o* . |
  16. | ... So+*B o |
  17. | + ...==B . |
  18. | . o . ....++. |
  19. |o o . . o..o+ |
  20. |=..o.. ..o o. |
  21. +----[SHA256]-----+

上面顯示的命令將創(chuàng)建公鑰和私鑰。其中公鑰用于加密,私鑰用于解密。因此,這些密鑰之間的關(guān)系是關(guān)鍵的,私有密鑰絕不應(yīng)該被共享。相反,它應(yīng)該保存在 boss 系統(tǒng)的 .ssh 文件夾中。

注意,在創(chuàng)建時(shí),你的公鑰和私鑰將會(huì)保存在 .ssh 文件夾中。

下一步是將公鑰復(fù)制到你希望從 boss 系統(tǒng)免密訪(fǎng)問(wèn)的系統(tǒng)。你可以使用 scp 命令來(lái)完成此操作,但此時(shí)你仍然需要輸入密碼。在本例中,該系統(tǒng)稱(chēng)為 “target”。

  1. boss$ scp .ssh/id_rsa.pub myacct@target:/home/myaccount
  2. myacct@target's password:

你需要安裝公鑰在 target 系統(tǒng)(將運(yùn)行命令的系統(tǒng))上。如果你沒(méi)有 .ssh 目錄(例如,你從未在該系統(tǒng)上使用過(guò) ssh),運(yùn)行這樣的命令將為你設(shè)置一個(gè)目錄:

  1. target$ ssh localhost date
  2. target$ ls -la .ssh
  3. total 12
  4. drwx------ 2 myacct myacct 4096 Jan 19 11:48 .
  5. drwxr-xr-x 6 myacct myacct 4096 Jan 19 11:49 ..
  6. -rw-r--r-- 1 myacct myacct 222 Jan 19 11:48 known_hosts

仍然在目標(biāo)系統(tǒng)上,你需要將從“boss”系統(tǒng)傳輸?shù)墓€添加到 .ssh/authorized_keys 文件中。如果該文件已經(jīng)存在,使用下面的命令將把它添加到文件的末尾;如果文件不存在,則創(chuàng)建該文件并添加密鑰。

  1. target$ cat id_rsa.pub >> .ssh/authorized_keys

下一步,你需要確保你的 authorized_keys 文件權(quán)限為 600。如果還不是,執(zhí)行命令 chmod 600 .ssh/authorized_keys。

  1. target$ ls -l authorized_keys
  2. -rw------- 1 myself myself 569 Jan 19 12:10 authorized_keys

還要檢查目標(biāo)系統(tǒng)上 .ssh 目錄的權(quán)限是否設(shè)置為 700。如果需要,執(zhí)行 chmod 700 .ssh 命令修改權(quán)限。

  1. target$ ls -ld .ssh
  2. drwx------ 2 myacct myacct 4096 Jan 14 15:54 .ssh

此時(shí),你應(yīng)該能夠從 boss 系統(tǒng)遠(yuǎn)程免密運(yùn)行命令到目標(biāo)系統(tǒng)。除非目標(biāo)系統(tǒng)上的目標(biāo)用戶(hù)帳戶(hù)擁有與你試圖連接的用戶(hù)和主機(jī)相同的舊公鑰,否則這應(yīng)該可以工作。如果是這樣,你應(yīng)該刪除早期的(并沖突的)條目。

使用腳本

使用腳本可以使某些工作變得更加容易。但是,在下面的示例腳本中,你會(huì)遇到的一個(gè)煩人的問(wèn)題是,在配置免密訪(fǎng)問(wèn)權(quán)限之前,你必須多次輸入目標(biāo)用戶(hù)的密碼。一種選擇是將腳本分為兩部分——需要在 boss 系統(tǒng)上運(yùn)行的命令和需要在 target 系統(tǒng)上運(yùn)行的命令。

這是“一步到位”版本的腳本:

  1. #!/bin/bash
  2. # NOTE: This script requires that you have the password for the remote acct
  3. # in order to set up password-free access using your public key
  4.  
  5. LOC=`hostname` # the local system from which you want to run commands from
  6. # wo a password
  7.  
  8. # get target system and account
  9. echo -n "target system> "
  10. read REM
  11. echo -n "target user> "
  12. read user
  13.  
  14. # create a key pair if no public key exists
  15. if [ ! -f ~/.ssh/id_rsa.pub ]; then
  16. ssh-keygen -t rsa
  17. fi
  18.  
  19. # ensure a .ssh directory exists in the remote account
  20. echo checking for .ssh directory on remote system
  21. ssh $user@$REM "if [ ! -d /home/$user/.ssh ]; then mkdir /home/$user/.ssh; fi"
  22.  
  23. # share the public key (using local hostname)
  24. echo copying the public key
  25. scp ~/.ssh/id_rsa.pub $user@$REM:/home/$user/$user-$LOC.pub
  26.  
  27. # put the public key into the proper location
  28. echo adding key to authorized_keys
  29. ssh $user@$REM "cat /home/$user/$user-$LOC.pub >> /home/$user/.ssh/authorized_ke
  30. ys"
  31.  
  32. # set permissions on authorized_keys and .ssh (might be OK already)
  33. echo setting permissions
  34. ssh $user@$REM "chmod 600 ~/.ssh/authorized_keys"
  35. ssh $user@$REM "chmod 700 ~/.ssh"
  36.  
  37. # try it out -- should NOT ask for a password
  38. echo testing -- if no password is requested, you are all set
  39. ssh $user@$REM /bin/hostname

腳本已經(jīng)配置為在你每次必須輸入密碼時(shí)告訴你它正在做什么。交互看起來(lái)是這樣的:

  1. $ ./rem_login_setup
  2. target system> fruitfly
  3. target user> lola
  4. checking for .ssh directory on remote system
  5. lola@fruitfly's password:
  6. copying the public key
  7. lola@fruitfly's password:
  8. id_rsa.pub 100% 567 219.1KB/s 00:00
  9. adding key to authorized_keys
  10. lola@fruitfly's password:
  11. setting permissions
  12. lola@fruitfly's password:
  13. testing -- if no password is requested, you are all set
  14. fruitfly

在上面的場(chǎng)景之后,你就可以像這樣登錄到 lola 的帳戶(hù):

  1. $ ssh lola@fruitfly
  2. [lola@fruitfly ~]$

一旦設(shè)置了免密登錄,你就可以不需要鍵入密碼從 boss 系統(tǒng)登錄到 target 系統(tǒng),并且運(yùn)行任意的 ssh 命令。以這種免密的方式運(yùn)行并不意味著你的帳戶(hù)不安全。然而,根據(jù) target 系統(tǒng)的性質(zhì),保護(hù)你在 boss 系統(tǒng)上的密碼可能變得更加重要。 

責(zé)任編輯:龐桂玉 來(lái)源: Linux中國(guó)
相關(guān)推薦

2023-07-27 08:44:49

2019-02-18 14:18:04

2019-10-10 08:11:08

Linux公鑰私鑰

2024-10-28 09:38:15

2022-05-17 14:16:54

區(qū)塊鏈加密貨幣私鑰

2021-01-06 10:09:05

Spring Boothttps sslhttps

2023-03-15 10:38:55

2023-08-04 07:33:57

jsencryptRSA算法

2019-10-23 04:37:56

Jschsftp服務(wù)器

2024-06-20 12:35:36

2024-08-12 16:28:37

LinuxSSH密鑰

2018-11-26 09:21:56

2022-02-22 20:35:22

公鑰私鑰數(shù)據(jù)

2023-07-13 07:35:19

2012-10-23 09:54:17

2010-04-27 15:19:11

Unix密鑰

2025-01-07 08:55:54

2011-05-19 10:39:26

2023-08-27 00:02:49

2023-11-28 08:53:15

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)