我知道不建议这样做,但是是否有可能将用户的密码传递给scp?
我想通过scp复制一个文件,作为批处理作业的一部分,接收服务器当然需要密码,不,我不能轻易地将其更改为基于密钥的身份验证。
我知道不建议这样做,但是是否有可能将用户的密码传递给scp?
我想通过scp复制一个文件,作为批处理作业的一部分,接收服务器当然需要密码,不,我不能轻易地将其更改为基于密钥的身份验证。
当前回答
确保你有“期望”工具之前,如果没有,就这样做 # apt-get install expect 创建具有以下内容的脚本文件。(# vi /root/脚本文件) 生成SCP /path_from/file_name user_name_here@to_host_name:/path_to 预计“密码: 发送put_password_here \ n; 交互 使用“expect”工具执行脚本文件 # expect /root/scriptfile
其他回答
Curl可以用作SCP的替代方案来复制文件,并且它支持在命令行上设置密码。
curl --insecure --user username:password -T /path/to/sourcefile sftp://desthost/path/
我有一个简单的方法:
使用相同的scp cmd,因为您使用ssh密钥,即
scp -C -i <path_to打开sshkey> <'local file_path'> user@<ip_address_VM>: <'remote file_path'>
用于从本地传输文件到远程
但是不要提供正确的<path_to_opensshkey>,而是使用一些垃圾路径。由于错误的密钥路径,您将被要求输入密码,而不是你现在可以简单地通过密码来完成工作!
如果您从Windows连接到服务器,Putty版本的scp(“pscp”)允许您使用-pw参数传递密码。
这里的文档中提到了这一点。
将文件从一个服务器复制到另一个服务器(在脚本上)
在ubuntu或其他Linux机器上安装putty。Putty随pscp附带。我们可以用pscp复制文件。
apt-get update
apt-get install putty
echo n | pscp -pw "Password@1234" -r user_name@source_server_IP:/copy_file_path/files /path_to_copy/files
有关更多选项,请参阅pscp help。
您可以在unix/terminal上使用'expect'脚本
例如,创建'test。经验值:
#!/usr/bin/expect
spawn scp /usr/bin/file.txt root@<ServerLocation>:/home
set pass "Your_Password"
expect {
password: {send "$pass\r"; exp_continue}
}
运行脚本
expect test.exp
我希望这对你有所帮助。