小豹子的网络记事本

记录每一个有意思的细节

使用WinSCP密钥文件连接sftp服务器

一、概述

有一台linux机器,上面部署了sftp服务。然后我本机windows想通过winscp工具连接到这台linux服务器上传和下载文件。有两种连接方式,第一种是通过linux的用户名和密码,这种连接方式比较简单。本文将介绍第二种方式,即通过linux的用户名和密钥文件。

二、生成密钥文件(windows中完成)

1. 打开winscp工具,点击“会话”->“新建会话”。

1.png

2. 点击“高级"->"高级"。

2.png

3. 点击"验证"->"工具"->"生成新的密钥对"。

3.png

4. 点击"generate",在生成的过程中,鼠标可以随意在框中移动,相当于一个签名。

4.png

5. 生成完后,点击"save priviate key",这样就得到了一个以.ppk结尾的密钥文件,我这边就命名成my-test-key.ppk。

5.png

打开这个ppk文件,可以看到我圈出来的两段内容,其中标注为1的是公钥部分,标注为2的是私钥部分
6.png

三、将公钥写入到sftp服务器中(linux中完成)

我已经在linux中搭建了sftp服务,如果有不会搭建sftp可以参考这篇博客centos sftp安装
前提说明:我使用sftpuser作为sftp服务的用户,sftpuser的家目录为/data。
请依次执行以下命令,将公钥写入到sftpuser的认证文件中。
cd /data
mkdir .ssh
chown sftpuser: .ssh
chmod 700 .ssh
cd .ssh
touch authorized_keys
chown sfpuser: authorized_keys
chmod 600 authorized_keys
echo "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEApcvKlbe3+6iukeZ0mpqY1G112340jQrn9sSOmF//kIbXCTkPwnATdoxWDOQBDjzC895+2RPyCpiVTUgXhleJmXuw9cKEkx5fhetHLWfhPPyeRaIBEaSX2YL5/IcIZ2DKxXaZlAMtz9wATC1zgHHQnKnbqyLGAMzC+7DGAbbE1IXxVe8slKDcTKRxtB80gwsimJSf/e8rYy7WP4NUY7zycppxiMABngk+ZS9+7Nxc+7eyibbiN+cfUpYSsGKBqCRm1fRO9R/dYKdfPjyfWlFc9QtZqboFaRgIPvkJjc17kdcCDseElBRuBoNnhjyrwtDfZnZC6He6GZe+SUzHYtQb2w== my-test-key" >> authorized_keys
文件authorized_keys的默认格式是"ssh-rsa 公钥 备注",公钥即取自上一步的ppk文件中的公钥部分,注意公钥需要写成一行,这里的公钥我做了一点点的人为修改,写文章的需要,大家忽略即可。

四、连接

1. 输入要连接到的sftp服务器的ip地址和用户名。

7.png

2. 点击“高级"->"高级"。

8.png

3. 点击"验证"->"选择密钥文件",即在前面步骤中生成的ppk文件,点击"确定"。

9.png

4. 点击"登录",就可以与linux进行上传和下载文件了。

10.png
11.png

五、总结

  1. ppk文件包含了公钥和密钥,所有机器只要拿到这个ppk文件,都可以访问sftp服务器,所以需要妥善保管。
    ps: 本来工作比较繁忙,实在是没空写博客,但是网上全是粗制滥造的垃圾文章,不明白这些抄袭的意义何在。忍无可忍,花了半天的时间写了该文。
posted @ 2022-07-25 15:36  小豹子加油  阅读(1899)  评论(0编辑  收藏  举报