如何在 Linux 上設定 SSH 免密碼登入?

如何在 Linux 上設定 SSH 免密碼登入?

我的 Raspberry Pi 運行預設的 Debian 映像並啟用了 SSH。我如下登入我的 Pi:

ssh pi@<IP-address-of-my-Pi>

我每次都必須輸入密碼。我可以以某種方式讓我的 Pi 接受來自本地電腦的登入嗎?我正在運行 Fedora Linux。

答案1

是的,您可以使用 SSH 對 Raspberry Pi 自動進行身份驗證。

作為先決條件,需要滿足以下條件:

Linux

在 Linux 下,您可以透過套件管理器安裝 SSH,使用 產生金鑰對ssh-keygen,使用 複製金鑰到 Pissh-copy-id並使用 進行測試ssh

在 Linux 上安裝 SSH

大多數 Linux 發行版都預先安裝了 SSH 用戶端。如果您由於某種原因沒有,請使用套件管理器安裝它:

對於基於 RPM 的 Linux 發行版(例如 Fedora 和 Suse):

sudo yum install ssh

對於基於 DEB 的 Linux 發行版(例如 Debian 和 Ubuntu):

sudo apt-get install ssh

在 Linux 上產生金鑰對

首先,您需要一個公鑰/私鑰對。因此,如果您沒有,請執行以下命令以使用預設設定產生金鑰對。

$ ssh-keygen
generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
24:55:ee:67:83:72:82:55:5f:b9:b4:09:2a:fa:56:a1 [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|                 |
|         +    .  |
|        S    E   |
|         .  + +  |
|          .o . o.|
|         o.oo. oo|
|          ==o.BO+|
+-----------------+

將公鑰複製到 Linux 上的 Pi

其次,您需要將產生的公鑰複製到您想要無密碼登入的電腦。因此,在電腦上執行以下命令,並且作為用戶,您希望能夠存取 Pi:

$ ssh-copy-id pi@<IP-address-of-your-Pi>
Password:
Now try logging into the machine, with "ssh 'pi@<IP-address-of-your-Pi>'", and check in:
  .ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.

在 Linux 上透過 SSH 連接到 Pi

最後,使用 SSH 登錄,以驗證是否不需要密碼:

$ ssh pi@<IP-address-of-your-Pi>

答案2

檢查您嘗試複製的檔案的權限,確保您透過 ssh 登入的使用者有權讀取這些檔案。

相關內容