溫馨提示×

Ubuntu SSH無密碼登錄怎么設置

小樊
74
2025-03-12 07:34:58
欄目: 智能運維

在Ubuntu系統中設置SSH無密碼登錄,可以通過生成SSH密鑰對并將其添加到遠程服務器的authorized_keys文件中來實現。以下是詳細步驟:

1. 生成SSH密鑰對

首先,在本地機器上生成SSH密鑰對。打開終端并運行以下命令:

ssh-keygen -t rsa -b 4096
  • -t rsa 指定使用RSA算法。
  • -b 4096 指定密鑰長度為4096位。

系統會提示你選擇密鑰的保存位置和文件名,默認情況下會在~/.ssh/id_rsa(私鑰)和~/.ssh/id_rsa.pub(公鑰)。

你可以按回車鍵接受默認位置,或者輸入自定義路徑和文件名。

2. 將公鑰復制到遠程服務器

接下來,將生成的公鑰復制到遠程服務器的authorized_keys文件中??梢允褂?code>ssh-copy-id命令來完成這一操作:

ssh-copy-id user@remote_host
  • user 是遠程服務器上的用戶名。
  • remote_host 是遠程服務器的IP地址或域名。

系統會提示你輸入遠程服務器用戶的密碼。成功后,公鑰將被添加到遠程服務器的~/.ssh/authorized_keys文件中。

3. 測試無密碼登錄

現在,你可以嘗試通過SSH無密碼登錄到遠程服務器:

ssh user@remote_host

如果一切設置正確,你應該能夠直接登錄,而無需輸入密碼。

4. 配置SSH客戶端(可選)

為了進一步提高安全性,可以配置SSH客戶端以禁用某些不安全的選項。編輯或創建~/.ssh/config文件,并添加以下內容:

Host remote_host
    HostName remote_host_ip_or_domain
    User user
    IdentityFile ~/.ssh/id_rsa
    PubkeyAuthentication yes
    PasswordAuthentication no
    ChallengeResponseAuthentication no
    UsePAM no
  • Host 是你給遠程服務器起的別名。
  • HostName 是遠程服務器的實際IP地址或域名。
  • User 是遠程服務器上的用戶名。
  • IdentityFile 是你的私鑰文件路徑。
  • PubkeyAuthentication yes 啟用公鑰認證。
  • PasswordAuthentication no 禁用密碼認證。
  • ChallengeResponseAuthentication no 禁用挑戰響應認證。
  • UsePAM no 禁用PAM認證(可選,根據需要)。

5. 配置SSH服務器(可選)

確保遠程服務器的SSH配置允許公鑰認證。編輯遠程服務器上的/etc/ssh/sshd_config文件,并確保以下行未被注釋且設置為yes

PubkeyAuthentication yes

然后重啟SSH服務以應用更改:

sudo systemctl restart sshd

通過以上步驟,你應該能夠在Ubuntu系統中成功設置SSH無密碼登錄。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女