而不是在shell脚本中对密码进行硬编码,而是使用SSH密钥,更加简单和安全。
$ scp -i ~/.ssh/id_rsa devops@myserver.org:/path/to/bin/*.derp .
假设你的私钥在~/.ssh/id_rsa
要生成公钥/私钥对,请执行以下操作:
$ ssh-keygen -t rsa
以上将生成2个文件, ~/.ssh/id_rsa (私钥)和~/.ssh/id_rsa.pub (公钥)
要设置使用的SSH密钥(一次性任务):复制~/.ssh/id_rsa.pub的内容,并粘贴到myserver.org服务器中的~devops/.ssh/authorized_keys的新行。 如果~devops/.ssh/authorized_keys不存在,请随时创build它。
一个清晰的如何指导可在这里 。
#!/usr/bin/expect -f # connect via scp spawn scp "user@example.com:/home/santhosh/file.dmp" /u01/dumps/file.dmp ####################### expect { -re ".*es.*o.*" { exp_send "yes\r" exp_continue } -re ".*sword.*" { exp_send "PASSWORD\r" } } interact
你也可以使用rsync。 它似乎更好的多个文件比scp恕我直言。
rsync -avzh / path / to / dir / user @ remote:/ path / to / remote / dir /
更新
您可以通过添加