如何使用 pscp.pssh 命令在私钥而不是密码的帮助下将文件复制到远程服务器。
这是我正在使用的命令,我收到密码提示。请帮忙
pscp.pssh -h hosts.txt -l vipin -x "-o StrictHostKeyChecking=no -i vipin_rsa.pem" -Av example.txt /tmp/
一些问题的答案:
- 远程服务器有公钥。
- 运行命令时出现密码提示。
- 私钥驻留在我执行命令的同一目录中。
答案1
显然pscp.pssh
是该项目的并行 SCP 工具。可以找到它的手册页这里。
-A --askpass
提示输入密码并将其传递给 ssh。密码可用于解锁密钥或用于密码验证。密码以相当安全的方式传输(例如,它不会出现在参数列表中)。但是,请注意系统上的 root 用户可能会截获密码。
换句话说,pscp.pssh
就是要求输入密码因为你已经告诉它去询问,通过使用选项-A
.如果您不想这样做,请删除该选项,即将命令行中的更改-Av
为。-v
如果此后您仍然收到密码提示,您将必须找出文件中的(可能)许多主机中的哪一个hosts.txt
拒绝密钥身份验证,并且读取该远程服务器的日志找出为什么它sshd
拒绝您的密钥。
一个常见的原因是对远程服务器上的授权密钥文件的权限不正确:如果其他用户(root 除外)可以将其密钥写入该文件,sshd
则将假定授权密钥文件可能已被篡改,并完全忽略它。如果是这种情况,sshd
服务器日志中的日志消息将准确描述哪个文件或目录具有不正确的权限 - 但不会将该信息传递给尚未经过身份验证的(=尚未证明是合法的!)出于安全原因客户端。