在SFTP配置中启用公钥认证可以提高安全性,以下是具体步骤:
生成SSH密钥对
ssh-keygen
命令生成一对公钥和私钥。ssh-keygen -t rsa -b 4096 -m PEM -f ~/.ssh/id_rsa
id_rsa
(私钥)和id_rsa.pub
(公钥)文件。将公钥复制到服务器的授权密钥文件中
id_rsa.pub
的内容追加到服务器用户的~/.ssh/authorized_keys
文件中。cat ~/.ssh/id_rsa.pub | ssh user@server 'cat >> ~/.ssh/authorized_keys'
~/.ssh
目录和authorized_keys
文件的权限正确:chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
配置SSH服务器以使用公钥认证
/etc/ssh/sshd_config
。sudo nano /etc/ssh/sshd_config
PubkeyAuthentication yes
#
):AuthorizedKeysFile .ssh/authorized_keys
重启SSH服务
sudo systemctl restart sshd
将私钥添加到SSH代理
ssh-agent
),可以将私钥添加到代理中。eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
配置SSH客户端使用私钥
~/.ssh/config
中添加以下内容(如果文件不存在,可以创建一个):Host your_server_hostname
HostName your_server_ip_or_hostname
User your_username
IdentityFile ~/.ssh/id_rsa
sftp your_username@your_server_hostname
通过以上步骤,你应该能够在SFTP配置中成功启用公钥认证。这样可以提高连接的安全性,并减少密码泄露的风险。