pscp 是 PuTTY 带的工具,可用作 Windows 上的 scp 替代,就在 PuTTY 的安装目录,加入 PATH 就可以敲命令用。
无密上传/下载数据需要将公钥写入服务器,但是 PuTTY 用的公、私钥是 .ppk 的,不同于 ssh 的公、私钥,要另外生成。参考 [1],执行 puttygen(也是在 PuTTY 安装目录)打开生成界面:

点 Generate 生成,需要乱动一下鼠标给它提供随机性:

然后 Save public key 和 Save private key(私钥文件中包含公钥)。

将 public key 写入服务器的 ~/.ssh/authorized_keys:
- 如果是从上图界面中的框里复制的,把结尾形如
rsa-key-20230407的部份删掉; - 如果是从文件中复制的,公钥文件内容形如:
私钥文件内容形如:---- BEGIN SSH2 PUBLIC KEY ---- Comment: "rsa-key-20230407" (公钥,有换行) ---- END SSH2 PUBLIC KEY ----
在公钥前面加上PuTTY-User-Key-File-3: ssh-rsa Encryption: none Comment: rsa-key-20230407 Public-Lines: 6 (公钥,有换行) Private-Lines: 14 (私钥) Private-MAC: (一串什么东西)ssh-rsa,空格间开。注意:文件中的公钥有换行,写入时要删掉。
Example
- 用
-i指明私钥文件
@echo off
setlocal enabledelayedexpansion
set IP=1.2.3.4
set USER=iTom
set SRC=/home/itom/videos
@REM 刚才存的私钥文件叫 putty-pri.ppk
set KEY=%USERPROFILE%\.ssh\putty-pri.ppk
@REM 目录结构: extracted-frames/<video-id>_inv-video/<frame-id>.jpg
for /d %%d in (extracted-frames/*) do (
set dd=%%d
@REM 删后 10 个字符,即 `_inv-video`
set vid=!dd:~0,-10!
if not exist videos/!vid!.mp4 (
pscp -i %KEY% %USER%@%IP%:%SRC%/!vid!.mp4 videos
)
)
文章介绍了如何使用PuTTY的pscp工具替代scp命令在Windows上进行无密码的文件传输。首先,需要生成PuTTY兼容的ppk格式的公钥和私钥,然后将公钥添加到服务器的~/.ssh/authorized_keys文件中。通过puttygen可以转换和管理这些密钥。接着,文章提供了一个批处理脚本来演示如何使用-i参数指定私钥文件,无密下载服务器上的视频文件到本地。
1618

被折叠的 条评论
为什么被折叠?



