使用expect脚本实现免密登录,前提需要安装expect
秘钥登录
上传本地文件/test/csdn.txt到192.168.1.10服务器目录/opt/desc下,登录192.168.1.10服务器需要使用私钥。私钥文件/test/cui_rsa。
编写脚本如下:
spawn scp -i /test/cui_rsa /test/csdn.txt root@192.168.1.10:/opt/desc
创建一个sh文件upload.sh,完整文件内容:
#!/usr/bin/expect -f
#upload
spawn scp -i /test/cui_rsa /test/csdn.txt root@192.168.1.10:/opt/desc
send "exit\r"
expect eof
私钥带密码
如果使用的私钥文件读取需要密码,再上传过程中需要输入密码,为了达到免密可以使用以下脚本
#!/usr/bin/expect -f
#upload
spawn scp -i /test/cui_rsa /test/csdn.txt root@192.168.1.10:/opt/desc
expect "Enter passphrase*"
send "password\r";
send "exit\r"
expect eof
以上脚本中的password就是打开秘钥文件cui_rsa的密码。
上传目录
#!/usr/bin/expect -f
#upload
spawn scp -i /test/cui_rsa -r /test root@192.168.1.10:/opt/desc
expect "Enter passphrase*"
send "password\r";
send "exit\r"
expect eof
上传本地的/test目录到192.168.1.10服务器的/opt/desc目录下。