在Ubuntu上配置SSH安全連接可以通過以下幾個步驟來實現:
首先,確保你的Ubuntu系統是最新的:
sudo apt update && sudo apt upgrade -y
如果還沒有安裝OpenSSH服務器,可以使用以下命令進行安裝:
sudo apt install openssh-server -y
編輯SSH配置文件 /etc/ssh/sshd_config:
sudo nano /etc/ssh/sshd_config
找到并修改以下行,禁止root用戶通過SSH直接登錄:
PermitRootLogin no
為了增加安全性,可以更改SSH的默認端口(通常是22):
Port 2222
記得在防火墻中開放這個新端口。
確保以下行沒有被注釋掉,并且配置正確:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
如果你更傾向于使用公鑰認證,可以禁用密碼認證:
PasswordAuthentication no
AllowUsers your_username
AllowUsers your_username@192.168.1.100
保存并退出編輯器后,重啟SSH服務以應用更改:
sudo systemctl restart sshd
如果你使用的是UFW(Uncomplicated Firewall),可以添加規則來允許新的SSH端口:
sudo ufw allow 2222/tcp
sudo ufw reload
在本地機器上生成SSH密鑰對(如果還沒有):
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
按照提示操作,通常會生成 id_rsa 和 id_rsa.pub 文件。
將生成的公鑰復制到遠程服務器的 ~/.ssh/authorized_keys 文件中:
ssh-copy-id -p 2222 your_username@remote_host
或者手動復制:
cat ~/.ssh/id_rsa.pub | ssh -p 2222 your_username@remote_host 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'
現在,你應該能夠通過新的端口和安全設置連接到遠程服務器:
ssh -p 2222 your_username@remote_host
通過以上步驟,你可以大大提高Ubuntu上SSH連接的安全性。