Debian SFTP如何使用密钥认证

313
2025/4/5 3:32:13
栏目: 智能运维
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在Debian系统中使用SFTP进行密钥认证,可以按照以下步骤操作:

1. 生成SSH密钥对

首先,你需要在客户端生成一对SSH密钥(公钥和私钥)。如果你已经有一对密钥,可以跳过这一步。

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

执行上述命令后,系统会提示你输入文件保存位置和密码短语。通常情况下,你可以直接按回车键使用默认位置和空密码短语。

2. 将公钥复制到服务器

接下来,你需要将生成的公钥复制到SFTP服务器的~/.ssh/authorized_keys文件中。

方法一:使用ssh-copy-id命令

如果你有权限访问服务器,可以使用ssh-copy-id命令:

ssh-copy-id user@server_ip

系统会提示你输入服务器用户的密码,输入正确后,公钥会被复制到服务器。

方法二:手动复制

如果你没有权限使用ssh-copy-id,可以手动复制公钥:

  1. 在客户端生成公钥(如果还没有):

    ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa.pub
    
  2. 将公钥内容复制到剪贴板:

    cat ~/.ssh/id_rsa.pub
    
  3. 登录到服务器:

    ssh user@server_ip
    
  4. 在服务器上创建.ssh目录(如果不存在)并设置正确的权限:

    mkdir -p ~/.ssh
    chmod 700 ~/.ssh
    
  5. 将公钥内容粘贴到~/.ssh/authorized_keys文件中,并保存:

    echo "your_public_key_content" >> ~/.ssh/authorized_keys
    
  6. 设置authorized_keys文件的权限:

    chmod 600 ~/.ssh/authorized_keys
    

3. 配置SSH服务器

确保SSH服务器允许密钥认证。编辑服务器上的/etc/ssh/sshd_config文件:

sudo nano /etc/ssh/sshd_config

找到并确保以下配置项被启用或设置为如下值:

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

保存并退出编辑器,然后重启SSH服务:

sudo systemctl restart sshd

4. 使用SFTP进行连接

现在,你可以使用SFTP进行连接了。在客户端终端中输入以下命令:

sftp -i ~/.ssh/id_rsa user@server_ip

如果一切配置正确,你应该能够无需输入密码直接登录到SFTP服务器。

注意事项

  • 确保私钥文件的权限设置正确(通常是600)。
  • 如果使用密码短语保护私钥,连接时需要输入密码短语。
  • 确保服务器上的防火墙允许SSH连接(默认端口22)。

通过以上步骤,你应该能够在Debian系统中成功配置和使用SFTP密钥认证。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: debian中怎么配置静态ip地址