在Debian系統中啟用SFTP公鑰認證,可以按照以下步驟進行操作:
首先,確保你的系統上安裝了openssh-server
和openssh-client
。如果沒有安裝,可以使用以下命令進行安裝:
sudo apt update
sudo apt install openssh-server openssh-client
如果你還沒有SSH密鑰對,可以使用以下命令生成一個:
ssh-keygen -t rsa -b 4096
按照提示操作,通常會生成兩個文件:~/.ssh/id_rsa
(私鑰)和~/.ssh/id_rsa.pub
(公鑰)。
使用ssh-copy-id
命令將公鑰復制到遠程服務器的~/.ssh/authorized_keys
文件中:
ssh-copy-id user@remote_host
其中,user
是遠程服務器上的用戶名,remote_host
是遠程服務器的IP地址或域名。
編輯遠程服務器上的/etc/ssh/sshd_config
文件:
sudo nano /etc/ssh/sshd_config
找到并修改以下配置項:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
確保這些配置項沒有被注釋掉,并且設置正確。
保存并關閉文件后,重啟SSH服務以應用更改:
sudo systemctl restart sshd
現在,你可以嘗試使用SFTP連接到遠程服務器,看看是否成功:
sftp user@remote_host
如果一切配置正確,你應該能夠使用公鑰認證登錄到遠程服務器。
如果你希望限制SFTP用戶的訪問權限,可以在/etc/ssh/sshd_config
文件中添加或修改以下配置:
Subsystem sftp internal-sftp
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
然后,創建一個用戶組sftpusers
并將需要限制的用戶添加到該組:
sudo groupadd sftpusers
sudo usermod -aG sftpusers user
最后,確保/home/user
目錄的權限設置正確,以便SFTP用戶只能訪問自己的主目錄:
sudo chown root:root /home/user
sudo chmod 755 /home/user
sudo chown user:user /home/user/.ssh
sudo chmod 700 /home/user/.ssh
sudo chown user:user /home/user/.ssh/authorized_keys
sudo chmod 600 /home/user/.ssh/authorized_keys
通過以上步驟,你就可以在Debian系統中成功啟用SFTP公鑰認證。