温馨提示×

如何使用SSH密钥登录Debian SFTP

小樊
39
2025-11-28 06:26:10
栏目: 智能运维

要使用SSH密钥登录Debian系统上的SFTP,您需要按照以下步骤操作:

1. 生成SSH密钥对

如果您还没有SSH密钥对,可以使用以下命令生成:

ssh-keygen -t rsa -b 4096

按照提示操作,通常会生成两个文件:

  • ~/.ssh/id_rsa(私钥)
  • ~/.ssh/id_rsa.pub(公钥)

2. 将公钥复制到Debian服务器

您需要将生成的公钥复制到Debian服务器上的用户目录下的.ssh/authorized_keys文件中。可以使用以下命令:

ssh-copy-id user@remote_host

其中:

  • user 是您在Debian服务器上的用户名。
  • remote_host 是Debian服务器的IP地址或域名。

如果您没有ssh-copy-id命令,可以手动复制公钥:

  1. 在本地机器上打开~/.ssh/id_rsa.pub文件,复制其内容。
  2. 登录到Debian服务器:
    ssh user@remote_host
    
  3. 创建.ssh目录(如果不存在)并设置正确的权限:
    mkdir -p ~/.ssh
    chmod 700 ~/.ssh
    
  4. 将复制的公钥内容追加到~/.ssh/authorized_keys文件中:
    echo "your_public_key_content" >> ~/.ssh/authorized_keys
    
    其中your_public_key_content是您从本地机器上复制的公钥内容。

3. 配置SSH客户端

确保您的SSH客户端配置允许使用密钥登录。编辑或创建~/.ssh/config文件,添加以下内容:

Host remote_host
    HostName remote_host
    User user
    IdentityFile ~/.ssh/id_rsa

其中:

  • remote_host 是Debian服务器的IP地址或域名。
  • user 是您在Debian服务器上的用户名。
  • IdentityFile 是您的私钥文件路径。

4. 使用SFTP登录

现在您可以使用SFTP登录到Debian服务器:

sftp user@remote_host

如果一切配置正确,您将成功登录并可以使用SFTP命令进行文件传输。

5. 验证SSH密钥登录

为了确保SSH密钥登录正常工作,您可以尝试禁用密码登录:

  1. 编辑远程服务器上的/etc/ssh/sshd_config文件:
    sudo nano /etc/ssh/sshd_config
    
  2. 找到并修改以下行:
    PasswordAuthentication no
    
  3. 保存并退出编辑器,然后重启SSH服务:
    sudo systemctl restart sshd
    

现在,您只能使用SSH密钥登录,密码登录将被禁用。

通过以上步骤,您应该能够成功使用SSH密钥登录Debian系统并进行SFTP文件传输。

0