温馨提示×

Debian SFTP配置如何支持公钥认证

小樊
34
2025-11-22 08:20:16
栏目: 智能运维

在Debian系统上配置SFTP以支持公钥认证,可以按照以下步骤进行:

1. 安装必要的软件包

首先,确保你已经安装了openssh-server。如果没有安装,可以使用以下命令进行安装:

sudo apt update
sudo apt install openssh-server

2. 配置SSH服务器

编辑SSH服务器的配置文件/etc/ssh/sshd_config,以启用公钥认证。

sudo nano /etc/ssh/sshd_config

在文件中找到并修改以下行:

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

确保这些行没有被注释掉(即没有以#开头)。

3. 创建用户和目录

如果你还没有用户,可以使用以下命令创建一个新用户:

sudo adduser username

然后,切换到该用户并创建.ssh目录:

sudo su - username
mkdir -p ~/.ssh
chmod 700 ~/.ssh

4. 生成SSH密钥对

在客户端机器上生成SSH密钥对(如果还没有的话)。你可以使用以下命令:

ssh-keygen -t rsa -b 4096

按照提示操作,通常会生成两个文件:id_rsa(私钥)和id_rsa.pub(公钥)。

5. 将公钥复制到服务器

将生成的公钥复制到服务器用户的~/.ssh/authorized_keys文件中。你可以使用以下命令:

ssh-copy-id username@server_ip

系统会提示你输入服务器用户的密码。成功后,公钥将被添加到服务器的~/.ssh/authorized_keys文件中。

6. 重启SSH服务

为了使配置生效,需要重启SSH服务:

sudo systemctl restart sshd

7. 测试SFTP连接

现在,你应该能够使用SFTP进行连接,并且只需要提供私钥即可认证。例如:

sftp username@server_ip

系统会提示你输入私钥的密码(如果设置了的话)。成功后,你将进入SFTP命令行界面。

8. 配置防火墙(可选)

如果你启用了防火墙,确保允许SSH连接:

sudo ufw allow ssh

或者使用iptables

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

完成以上步骤后,你的Debian系统应该已经成功配置了SFTP以支持公钥认证。

0