成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用公鑰/私鑰對設定免密的Linux登錄方式

系統 Linux
使用一組公鑰/私鑰對讓你不需要密碼登錄到遠程 Linux 系統或使用 ssh 運行命令,這會非常方便,但是設置過程有點復雜。下面是幫助你的方法和腳本。

[[313585]]

使用一組公鑰/私鑰對讓你不需要密碼登錄到遠程 Linux 系統或使用 ssh 運行命令,這會非常方便,但是設置過程有點復雜。下面是幫助你的方法和腳本。

Linux 系統上設置一個允許你無需密碼即可遠程登錄或運行命令的帳戶并不難,但是要使它正常工作,你還需要掌握一些繁瑣的細節。在本文,我們將完成整個過程,然后給出一個可以幫助處理瑣碎細節的腳本。

設置好之后,如果希望在腳本中運行 ssh 命令,尤其是希望配置自動運行的命令,那么免密訪問特別有用。

需要注意的是,你不需要在兩個系統上使用相同的用戶帳戶。實際上,你可以把公用密鑰用于系統上的多個帳戶或多個系統上的不同帳戶。

設置方法如下。

在哪個系統上啟動?

首先,你需要從要發出命令的系統上著手。那就是你用來創建 ssh 密鑰的系統。你還需要可以訪問遠程系統上的帳戶并在其上運行這些命令。

為了使角色清晰明了,我們將場景中的第一個系統稱為 “boss”,因為它將發出要在另一個系統上運行的命令。

因此,命令提示符如下:

  1. boss$

如果你還沒有在 boss 系統上為你的帳戶設置公鑰/私鑰對,請使用如下所示的命令創建一個密鑰對。注意,你可以在各種加密算法之間進行選擇。(一般使用 RSA 或 DSA。)注意,要在不輸入密碼的情況下訪問系統,你需要在下面的對話框中的兩個提示符出不輸入密碼。

如果你已經有一個與此帳戶關聯的公鑰/私鑰對,請跳過此步驟。

  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): <== 按下回車鍵即可
  5. Enter same passphrase again: <== 按下回車鍵即可
  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]-----+

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

注意,在創建時,你的公鑰和私鑰將會保存在 .ssh 文件夾中。

下一步是將公鑰復制到你希望從 boss 系統免密訪問的系統。你可以使用 scp 命令來完成此操作,但此時你仍然需要輸入密碼。在本例中,該系統稱為 “target”。

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

你需要安裝公鑰在 target 系統(將運行命令的系統)上。如果你沒有 .ssh 目錄(例如,你從未在該系統上使用過 ssh),運行這樣的命令將為你設置一個目錄:

  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

仍然在目標系統上,你需要將從“boss”系統傳輸的公鑰添加到 .ssh/authorized_keys 文件中。如果該文件已經存在,使用下面的命令將把它添加到文件的末尾;如果文件不存在,則創建該文件并添加密鑰。

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

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

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

還要檢查目標系統上 .ssh 目錄的權限是否設置為 700。如果需要,執行 chmod 700 .ssh 命令修改權限。

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

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

使用腳本

使用腳本可以使某些工作變得更加容易。但是,在下面的示例腳本中,你會遇到的一個煩人的問題是,在配置免密訪問權限之前,你必須多次輸入目標用戶的密碼。一種選擇是將腳本分為兩部分——需要在 boss 系統上運行的命令和需要在 target 系統上運行的命令。

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

  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

腳本已經配置為在你每次必須輸入密碼時告訴你它正在做什么。交互看起來是這樣的:

  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

在上面的場景之后,你就可以像這樣登錄到 lola 的帳戶:

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

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

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2023-07-27 08:44:49

2019-02-18 14:18:04

2019-10-10 08:11:08

Linux公鑰私鑰

2022-05-17 14:16:54

區塊鏈加密貨幣私鑰

2024-10-28 09:38:15

2021-01-06 10:09:05

Spring Boothttps sslhttps

2023-03-15 10:38:55

2023-08-04 07:33:57

jsencryptRSA算法

2024-06-20 12:35:36

2024-08-12 16:28:37

LinuxSSH密鑰

2019-10-23 04:37:56

Jschsftp服務器

2018-11-26 09:21:56

2022-02-22 20:35:22

公鑰私鑰數據

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

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕一区二区三区四区五区 | 国产精品99久久久久久久久 | 国产1区2区 | 天天插天天舔 | 成人免费视频 | 一区二区在线免费观看 | 日韩在线小视频 | 国产精品美女 | 91免费入口 | 欧美日韩国产中文字幕 | 日韩在线观看精品 | 国产二区在线播放 | 人操人人干人 | 日屁视频 | 国产成人jvid在线播放 | 日本中文在线 | 精品一级电影 | 91视频在线看 | 黄色a三级| 久久99国产精一区二区三区 | 色天堂视频| 久久久婷 | 精品久久伊人 | 国产精品久久久久久久久 | 天堂综合网 | 午夜在线免费观看 | 在线播放国产视频 | 久久精品16 | 欧美一级黄色片免费观看 | 成人在线精品视频 | 国产91久久精品一区二区 | 成人av网站在线观看 | 久久久久99 | a在线视频 | 91精品国产91久久久久游泳池 | 成人天堂 | 亚洲一区二区三区四区五区中文 | 久久综合影院 | 九九热精品在线视频 | 欧美日韩综合一区 | 亚洲一区二区在线电影 |