debian

SFTP配置中如何启用公钥认证

小樊
63
2025-05-05 08:26:34
栏目: 编程语言

在SFTP配置中启用公钥认证可以提高安全性,以下是具体步骤:

服务器端配置

  1. 生成SSH密钥对

    • 在服务器上,使用ssh-keygen命令生成一对公钥和私钥。
      ssh-keygen -t rsa -b 4096 -m PEM -f ~/.ssh/id_rsa
      
    • 这将生成id_rsa(私钥)和id_rsa.pub(公钥)文件。
  2. 将公钥复制到服务器的授权密钥文件中

    • 将生成的公钥文件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
      
  3. 配置SSH服务器以使用公钥认证

    • 编辑服务器上的SSH配置文件/etc/ssh/sshd_config
      sudo nano /etc/ssh/sshd_config
      
    • 找到并修改以下行:
      PubkeyAuthentication yes
      
    • 确保以下行没有被注释掉(即前面没有#):
      AuthorizedKeysFile .ssh/authorized_keys
      
    • 保存并退出编辑器。
  4. 重启SSH服务

    • 重启SSH服务以应用更改。
      sudo systemctl restart sshd
      

客户端配置

  1. 将私钥添加到SSH代理

    • 如果你使用的是SSH代理(如ssh-agent),可以将私钥添加到代理中。
      eval "$(ssh-agent -s)"
      ssh-add ~/.ssh/id_rsa
      
  2. 配置SSH客户端使用私钥

    • 在客户端的SSH配置文件~/.ssh/config中添加以下内容(如果文件不存在,可以创建一个):
      Host your_server_hostname
          HostName your_server_ip_or_hostname
          User your_username
          IdentityFile ~/.ssh/id_rsa
      
    • 这样,当你连接到服务器时,SSH客户端会自动使用指定的私钥进行认证。

测试连接

通过以上步骤,你应该能够在SFTP配置中成功启用公钥认证。这样可以提高连接的安全性,并减少密码泄露的风险。

0
看了该问题的人还看了