温馨提示×

如何使用SSH密钥进行Linux SFTP认证

小樊
62
2025-06-15 18:04:14
栏目: 智能运维

使用SSH密钥进行Linux SFTP认证是一种安全且方便的方法,可以避免每次连接时输入密码。以下是详细步骤:

1. 生成SSH密钥对

首先,你需要在本地机器上生成一个SSH密钥对。如果你已经有一个密钥对,可以跳过这一步。

在终端中运行以下命令:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  • -t rsa 指定生成RSA密钥。
  • -b 4096 指定密钥长度为4096位。
  • -C "your_email@example.com" 添加一个注释,通常是你的电子邮件地址。

按照提示操作,你可以选择密钥的保存位置和设置一个可选的密码短语。

2. 将公钥复制到远程服务器

接下来,你需要将生成的公钥(通常是 ~/.ssh/id_rsa.pub)复制到远程服务器的 ~/.ssh/authorized_keys 文件中。

你可以使用 ssh-copy-id 命令来完成这一操作:

ssh-copy-id user@remote_host
  • user 是你在远程服务器上的用户名。
  • remote_host 是远程服务器的IP地址或域名。

运行命令后,系统会提示你输入远程服务器用户的密码。输入密码后,公钥将被复制到远程服务器的 ~/.ssh/authorized_keys 文件中。

3. 配置SSH客户端

为了确保SSH客户端使用密钥进行认证,你可以编辑或创建 ~/.ssh/config 文件,添加以下内容:

Host remote_host
    HostName remote_host
    User user
    IdentityFile ~/.ssh/id_rsa
  • Host 是你给远程主机的别名。
  • HostName 是远程主机的实际IP地址或域名。
  • User 是你在远程服务器上的用户名。
  • IdentityFile 是你的私钥文件路径。

4. 使用SFTP连接

现在,你可以使用SFTP连接到远程服务器,而无需输入密码:

sftp user@remote_host

或者使用你配置的别名:

sftp remote_host

5. 验证连接

连接成功后,你应该能够看到SFTP提示符,表示你已经通过SSH密钥认证成功。

注意事项

  • 确保远程服务器的 ~/.ssh 目录和 ~/.ssh/authorized_keys 文件的权限正确。通常,~/.ssh 目录的权限应为 700~/.ssh/authorized_keys 文件的权限应为 600
  • 如果你在公司网络或使用防火墙,可能需要配置SSH隧道或端口转发。

通过以上步骤,你就可以使用SSH密钥进行Linux SFTP认证了。这种方法不仅安全,而且非常方便。

0