我想使用
pscp
(从 putty)将一些文件从我的 Windows PC 复制到远程 Linux 系统。我写了一个小脚本,以这种方式调用 pscp 命令:
"C:\Users\hp\Desktop\pscp.exe" -scp C:\Users\hp\Desktop\scripts\* [email protected]:/root/scripts
"C:\Users\hp\Desktop\pscp.exe" -scp C:\Users\hp\Desktop\scripts2\* [email protected]:/root/scripts2
pause
但是当我启动这个bat脚本时,要求我输入密码,所以我手动输入密码。
有没有办法通过批处理文件自动输入密码?
pscp -pw yourPasswordHere C:\Users\testUser\Downloads\test.sh [email protected]:/home/testUser
我注意到没有人使用 -pw 选项发布该命令的示例。
来自腻子文档
5.2.2.6 -pw passw 使用指定密码登录
如果需要密码才能连接到主机,PSCP 将 交互式地提示你。然而,这可能并不总是 合适的。如果您将 PSCP 作为某些自动化作业的一部分运行,它 将无法手动输入密码。 -pw 选项 PSCP 允许您指定要在命令行上使用的密码。
你可以自己解决这些问题。使用
/?
选项查看帮助。相关部分包括在下面。
>pscp /? PuTTY 安全复制客户端 发布 0.60 用法:pscp [选项] [用户@]主机:源目标 pscp [选项] 来源 [来源...] [用户@] 主机:目标 pscp [选项] -ls [用户@]主机:文件规范 选项: …… -l 用户连接指定的用户名 -pw passw 使用指定密码登录 ……
使用
-l
和-pw
选项指定用户和密码。
因此,虽然这回答了您提出的具体问题,但您真正的机会是学习如何从命令行实用程序获取文档。
使用putty设置远程无密码登录。这将涉及到 puttygen 命令。您将需要一个私钥,而目标将需要一个公钥。一旦你确认你有一个好的私钥文件并且无需输入密码就可以登录,你可以在 pscp 上使用“-i”私钥选项引用它。如果不允许,您可以在没有 putty 连接的情况下设置密钥,但这是最简单的方法。直接对密码说不:
C:\Users\riglerjo>pscp -i .ssh\rigler_rsa.ppk test.txt [email protected]:.
test.txt | 0 kB | 0.0 kB/s | ETA: 00:00:00 | 100%
如果您将本地文件复制到远程目录,请使用:
pscp -pw yourPasswordHere C:\Users\testUser\Downloads\test.sh [email protected]:/home/testUser
如果您将远程文件复制到本地目录,请使用:
pscp -pr yourPasswordHere [email protected]:/home/testUser/test.sh C:\Users\testUser\Downloads\
$ pscp -pw "speci4l^()Ch4rs" -r -sftp C:/Users/username/code/scp/* [email protected]:/var/www/example.com/public_html/scp
Windows 11,使用 MINGW64 (Git bash),密码使用双引号。
顺序可能很重要。
sshpass -p'password' pscp -A -H "ip" -t 20 -l root /var/www/html/temp_santosh.txt /tmp/
您可以在
sshpass
之前使用
-p
和
pscp
选项