scp命令自动输入密码 如何使得执行scp命令时不需要输入用户密码?
如何使得执行scp命令时不需要输入用户密码?
通常,使用SCP命令通过SSH将文件传输到其他Linux主机时,需要输入密码进行确认。但是,通过建立信任关系,您可以意识到您不需要输入密码。
要备份的服务器a的IP:192.168.0.1
要备份的服务器B的IP:192.168.0.2
要将文件复制到B,需要来自a的无密码输入
1。在服务器a上执行以下命令以生成配对密钥:
SSH keygen-t RSA
2。更改/root/中的ID。SSH/目录到ursa.pub公司将文件复制到/root/。SSH/服务器a的目录并将其重命名为authorizedukeys
scp.SSH/idursa.pub公司根@192.168.0.2:/root/.ssh/authorized keys。以后,从服务器s SCP到服务器B不需要密码。
3。使用此方法需要注意:复制两台计算机需要使用相同的帐户名,这里使用的是root。为了安全起见,您需要在两台计算机中创建相同的帐户,然后在服务器a上使用Su命令切换到该帐户,然后执行步骤1。在步骤2中复制文件时,~/。SSH/目录可能不存在,您需要手动创建它。
此外,在步骤2中,如果机器密钥文件中已存在authorized,则应注意,此文件可以包含多个SSH身份验证信息。此时,可以附加身份验证文件的内容。首先,执行脚本SCP~/。服务器au上的SSH/IDrsa.pub公司根@192.168.0.2:/root/。SSH/S.pub,然后执行cat~/。SSH/S.pub>>~/。SSH/authorized on server B#keys.
如何在脚本里面自动输入密码?
脚本如下:#!/usr/bin/expect-fset password password splash SCP user name@target machine IP:复制文件的路径,存储本地文件的路径set timeout 300 expect “user name@target machine IP”s密码:#。注意:这里的“user name@target machine IP”与上面设置的timeout 300 send“$passwordR”set timeout 300 send“”ExitR“expect EOF with:SCP parameters-R:copy directory-C:allow compression of a complete example#!/usr/bin/expect-fset密码123456#下载典当SCProot@192.168.1.218:/root/a.wmv/home/yangyz/set timeout“root@192.168.1.218“s password:”set timeout 300 send“$passwordr”set timeout 300 send”exitr”expect eofuploadspawn scp/home/yangyz/abc.sql数据库root@192.168.1.218:/root/测试.sql设置超时300期望“root@192.168.1.218“s password:”set timeout 300 send“$passwordr”set timeout 300 send”exitr”预期eof
scp命令自动输入密码 shell脚本scp命令上传文件 scp带用户名和密码
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。