要启用SFTP的公钥认证,您需要按照以下步骤操作:
生成SSH密钥对(如果尚未生成): 在客户端计算机上打开终端或命令提示符,然后输入以下命令来生成SSH密钥对:
ssh-keygen -t rsa -b 4096
按照提示操作,可以选择自定义密钥存储位置和设置密码短语。完成后,您将在指定的目录下得到两个文件:私钥(例如id_rsa)和公钥(例如id_rsa.pub)。
将公钥复制到服务器: 使用以下命令将公钥复制到服务器的授权密钥文件中:
ssh-copy-id user@server_ip
其中user是服务器上的用户名,server_ip是服务器的IP地址。系统会提示您输入服务器用户的密码。成功后,您的公钥将被添加到服务器的~/.ssh/authorized_keys文件中。
配置SSH服务器以使用公钥认证:
登录到服务器,编辑SSH配置文件/etc/ssh/sshd_config:
sudo nano /etc/ssh/sshd_config
在文件中找到或添加以下行:
PubkeyAuthentication yes
确保该行没有被注释掉(即没有以#开头)。您还可以添加或修改以下行来增强安全性:
PasswordAuthentication no
这将禁用密码认证,只允许公钥认证。保存并关闭文件。
重启SSH服务: 在服务器上重启SSH服务以应用更改:
sudo systemctl restart sshd
或者,如果您使用的是较旧的系统,可以使用以下命令:
sudo service ssh restart
测试SFTP连接: 在客户端计算机上,尝试使用SFTP连接到服务器:
sftp user@server_ip
如果一切配置正确,您应该能够无需输入密码即可登录到服务器。
请注意,这些步骤可能会因操作系统和SSH服务器软件的不同而略有差异。如果您遇到任何问题,请检查服务器的SSH配置文件和日志文件以获取更多信息。