Linux SFTP如何配置SSH密钥认证

在Linux系统中,使用SFTP(SSH File Transfer Protocol)进行文件传输时,可以通过配置SSH密钥认证来提高安全性。以下是配置SSH密钥认证的步骤:

1. 生成SSH密钥对

首先,在客户端机器上生成SSH密钥对。如果已经存在密钥对,可以跳过此步骤。

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

执行上述命令后,系统会提示你输入文件保存位置和密码短语(可选)。默认情况下,密钥对会保存在~/.ssh/id_rsa(私钥)和~/.ssh/id_rsa.pub(公钥)。

2. 将公钥复制到服务器

接下来,将生成的公钥复制到服务器的~/.ssh/authorized_keys文件中。可以使用ssh-copy-id命令来完成这一操作。

ssh-copy-id user@server_ip

执行上述命令后,系统会提示你输入服务器用户的密码。成功后,公钥会被添加到服务器的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

5. 使用SFTP进行连接

现在,你可以使用SFTP通过密钥认证连接到服务器。

sftp user@server_ip

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

6. 配置SSH客户端(可选)

为了方便使用,可以在客户端的~/.ssh/config文件中添加服务器的配置。

nano ~/.ssh/config

添加以下内容:

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

保存并退出编辑器。之后,你可以直接使用sftp server_ip命令连接到服务器,而无需每次都输入用户名和私钥路径。

通过以上步骤,你已经成功配置了Linux SFTP的SSH密钥认证。这样可以提高文件传输的安全性,并减少密码泄露的风险。

Both comments and pings are currently closed.

Comments are closed.

Powered by KingAbc | 粤ICP备16106647号-2 | Loading Time‌ 0.244