Linux : 基于 SSH2 密鑰的身份驗證設置綜合指南

      網友投稿 1090 2025-04-01

      我之前解釋了如何在 openSSH 上不輸入密碼的情況下執行 SSH 和 SCP。在本文中,我將通過以下 10 個步驟說明如何在SSH2上設置基于密鑰的身份驗證并在不輸入密碼的情況下執行 SSH/SCP。


      1. 驗證本地主機和遠程主機是否正在運行 SSH2。請注意,ssh 和 scp 分別是到 ssh2 和 scp2 的符號鏈接,如下所示。

      [local-host]$ ls -l /usr/local/bin/ssh /usr/local/bin/scp lrwxrwxrwx 1 root root 4 Mar 10 22:04 /usr/local/bin/scp -> scp2 lrwxrwxrwx 1 root root 4 Mar 10 22:04 /usr/local/bin/ssh -> ssh2 [local-host]$ ssh -V ssh: SSH Secure Shell 3.2.9.1 (non-commercial version) on i686-pc-linux-gnu [remote-host]$ ls -l /usr/local/bin/ssh /usr/local/bin/scp lrwxrwxrwx 1 root root 4 Mar 10 22:04 /usr/local/bin/scp -> scp2 lrwxrwxrwx 1 root root 4 Mar 10 22:04 /usr/local/bin/ssh -> ssh2 [remote-host]$ ssh -V ssh: SSH Secure Shell 3.2.9.1 (non-commercial version) on i686-pc-linux-gnu

      2. 使用 ssh-keygen2 在本地主機上生成密鑰對。通常 ssh-keygen 將是到 ssh-keygen2 的軟鏈接,如下所示。

      [local-host]$ ls -l /usr/local/bin/ssh-keygen lrwxrwxrwx 1 root root 11 Mar 10 22:04 /usr/local/bin/ssh-keygen -> ssh-keygen2 [local-host]$ ssh-keygen Generating 2048-bit dsa key pair 2 oOo.oOo.oOo. Key generated. 2048-bit dsa, jsmith@local-host, Sat Jun 21 2008 23:10:20 -0700 Passphrase : Again : Private key saved to /home/jsmith/.ssh2/id_dsa_2048_b Public key saved to /home/jsmith/.ssh2/id_dsa_2048_b.pub

      公鑰和私鑰存儲在您的主目錄下的 .ssh2 文件夾中。在此示例中,它位于 /home/jsmith/.ssh2 下。您不應該與任何人共享私鑰。

      默認情況下 ssh-keygen2 生成 DSA 密鑰對。您還可以使用以下命令生成 RSA 密鑰對:ssh-keygen -t rsa命令。

      3. 給 .ssh2 目錄賦予適當的權限,如下所示。

      [local-host]$ chmod 755 ~/.ssh2/ [local-host]$ chmod 644 ~/.ssh2/id_dsa_2048_b.pub [local-host]$ chmod 644 ~/.ssh2/authorization

      4. 識別客戶端機器上的私鑰。在本地主機上,將私鑰添加到 SSH2 標識文件中,如下所示。如果標識文件不存在,則創建一個新文件。如果該文件存在,則將上述步驟生成的私鑰文件名以“?IdKey {private-key file-name}?”格式附加到標識文件中,如下所示。

      [local-host]$ cat /home/jsmith/.ssh2/identification IdKey id_dsa_2048_a IdKey id_dsa_2048_b

      5. 將公鑰復制到遠程主機。

      將 /home/jsmith/.ssh2/id_dsa_2048_b.pub 文件從本地主機復制到遠程主機 /home/jsmith/.ssh2/id_dsa_2048_b.pub。您可以在遠程主機上執行 vi /home/jsmith/.ssh2/id_dsa_2048_b.pub 并從本地主機復制公鑰的內容。

      [remote-host]$ cat /home/jsmith/.ssh2/id_dsa_2048_b.pub ---- BEGIN SSH2 PUBLIC KEY ---- Subject: jsmith Comment: "2048-bit dsa, jsmith@local-host, Sat Jun 21 2020 23:10:\ 20 -0700" BCDEB3NzaC1kc3MAAAEBAMNH6MnHGNzNcuXWuQrGljZsObQq5SknOpLOreXq2GVeSIspX0 S1q7W63VGVDBD9ZVvZzg3UhzsPp6m/WPS53QAxlpQvTLCepipl1LILeOZRnYw+xXzEGgqa HggXhTy7Z1BMtB1dSlXT2Q1gdvRkvZ0hmlMXH0ktj7U81lKEkzYj8E/E1PZIJsBHAXbYms q7ftNTd7Gf1mSfbWIG7NIyOZ4i2qSZpQayuvB3MFQXy8lz25NGVq18zoFV4THtzV6ABvHL IJXEObZUgdUXJXQg49oeXvE6tyaqSUU7tUbp06ZgI/BcFGmbk9FDoC5gy30S5RBPpAJ5II vsfksnJRt+8R0AAAAVAJcTY6u2Em0Eo5I7X6yL1W+Di+rpAAABAELiJqtn2flgjA926TQk 3af14zSGFHut5kZjsMKUf+3Jj3p5MTiWVglgwWYLXcrG258l5GVPzdgF2d7Z9Bu1RUsdBo rU5LURvF1cZqC5V+9PD6hlH1iYuULUIbAaIfH6SXuk2KwQ/pEh1Q+lXUj6cCfLwe+yLcvZ YKLGdi2MvurUKmVRik3RpaB9wcuKbLjkp1rFZGr9skDAc2hYfpM0uF+6UEz6LXWKIvLJeO Iro6VL3MkJTxXb/Xu5/77TrT+Iz8+5cbALM3EdBOlJa1HcpPXnSKakB3Wo/Ljzf41GZPc/ Y6u09soNsnAHdv9y9gMhj1054sPwNCEJAy4eaWWsqkMAAAEBAL6eolWH4AGuB2/lPu79B0 ufgaU6BQfxED7rItf/lDhtsfHl77u6URxwQzvSV2CNJJ17WkdQoJmGfTVoSduNXOAgkQJU woB1ALzUfugbzLVxMXWUlmoQjvyoo4G9LMDdyP5qCbFXKsqkpY16N9xcUap5PgmcoF+dCv +hTjcC6f8j+BOy7zHYfyBnPGgSjKph9gjHyBEZiujPNkNmDXM+Mz7YeEd5HCtt1p55SBv6 wyePMAjf40ty7xcakj0Gk8c52W5yFwQjJw5EvruYW2s/1eNDXIY1IJOQKlUgOEQfon99a/ 8NO0BWLNiSCNdr3uHFkr68jeusASRWWvfxYU6uZ9c= ---- END SSH2 PUBLIC KEY ----

      6. 在遠程主機上創建授權文件,如下所示。此授權文件應包含從本地主機復制到遠程主機的公鑰的名稱,如上一步所述。請注意,該文件的格式為“?Key {public-key file-name}?”。

      Linux : 基于 SSH2 密鑰的身份驗證設置綜合指南

      [remote-host]$ cat /home/jsmith/.ssh2/authorization Key id_dsa_2048_b.pub

      7. 使用SSH2密鑰認證從local-host登錄到remote-host,驗證是否正常。

      [local-host]$ ssh -l jsmith remote-host Passphrase for key "/home/jsmith/.ssh2/id_dsa_2048_b" with comment "2048-bit dsa, jsmith@local-host, Sat Jun 21 2008 23:10:20 -0700": Last login: Sat Jun 21 2020 23:13:00 -0700 from 192.168.1.102 No mail. [remote-host]$

      有兩種方法可以在不輸入密碼的情況下執行 ssh 和 scp:

      沒有密碼。創建密鑰對時,請將密碼留空。將此選項用于自動批處理。例如,如果您正在運行 cron 作業以在機器之間復制文件,這是合適的選項。您可以跳過此方法的后續步驟。

      使用密碼和 SSH 代理。如果您在命令行中以交互方式使用 ssh 和 scp 并且不想在每次執行 ssh 或 scp 時都使用密碼,我不建議使用前一個選項(無密碼),因為您已經消除了一個級別基于 ssh 密鑰的身份驗證中的安全性。相反,在創建密鑰對時使用密碼短語并使用 SSH 代理執行 ssh 和 scp,而無需每次都輸入密碼,如下面的步驟所述。

      8. 在本地主機上啟動 SSH 代理以執行 ssh 和 scp,而無需多次輸入密碼。

      [local-host]$ ssh-agent $SHELL

      9. 將私鑰加載到本地主機上的 SSH 代理。

      [local-host]$ ssh-add Adding identity: /home/jsmith/.ssh2/id_dsa_2048_b.pub Need passphrase for /home/jsmith/.ssh2/id_dsa_2048_b (2048-bit dsa, jsmith@local-host, Sat Jun 22 2020 23:10:20 -0700). Enter passphrase:

      10. 在不輸入密碼的情況下,從本地主機執行 SSH 或 SCP 到 remote-home。

      [local-host]$ [local-host]$ ssh -l jsmith remote-host Last login: Sat Jun 07 2020 23:03:04 -0700 from 192.168.1.102 No mail. [remote-host]$

      linux ssh

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:如何在Excel中按月份名稱對列表進行排序?
      下一篇:【高并發】高并發環境下構建緩存服務需要注意哪些問題?
      相關文章
      亚洲av日韩av高潮潮喷无码| 亚洲成AV人片在| 亚洲视频中文字幕| 国产亚洲?V无码?V男人的天堂| 久久久久久久久无码精品亚洲日韩| 久久亚洲国产成人影院| 亚洲成a人片在线不卡| 亚洲一级在线观看| 亚洲一级毛片免费看| 亚洲欧洲日产国码二区首页| 亚洲精品第一国产综合精品| 色拍自拍亚洲综合图区| 99人中文字幕亚洲区| 亚洲黄色免费观看| 亚洲在成人网在线看| 亚洲a级片在线观看| 99999久久久久久亚洲| 亚洲欧美日韩一区二区三区 | 亚洲色精品88色婷婷七月丁香| 国产亚洲精品免费视频播放| 久久激情亚洲精品无码?V| 国产精品V亚洲精品V日韩精品| 亚洲综合伊人久久大杳蕉| 亚洲精品乱码久久久久66| 亚洲国产精品乱码一区二区 | 亚洲av无码专区在线观看下载| 色窝窝亚洲AV网在线观看| 亚洲国产成人精品女人久久久 | 亚洲日韩AV无码一区二区三区人| 亚洲色大成网站www久久九 | 亚洲专区在线视频| 亚洲理论片在线中文字幕| 亚洲一级毛片免费观看| 亚洲国产精品久久久久秋霞小 | 一本久久综合亚洲鲁鲁五月天| 亚洲国产午夜福利在线播放| 最新亚洲成av人免费看| 久久精品亚洲综合| 亚洲国产精品免费在线观看| 亚洲中文字幕乱码一区| 午夜亚洲国产成人不卡在线|