0

我通常scp这样使用:

myUser@myMachine:~/myapp$ scp devops@myserver.org:/path/to/bin/*.derp .
devops@myserver.org's password: ********
herp1.derp                                100%  732     0.7KB/s   00:00    
herp2.derp                                100%  215     0.2KB/s   00:00    
herp3.derp                                100%  682     0.7KB/s   00:00    
myUser@myMachine:~/myapp$

我现在想编写一个 Bash 脚本,除其他外,它会为我执行此操作,但密码存储在脚本中,并且脚本不会询问用户输入它:

sh dostuff.sh

只需将scp所有*.derp文件运行到用户的本地目录即可。

所以我问:我怎样才能scp从我的脚本中提供密码?提前致谢!

4

1 回答 1

2

无需在 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并粘贴到服务器~devops/.ssh/authorized_keys的新行中myserver.org。如果~devops/.ssh/authorized_keys不存在,请随意创建它。

此处提供了清晰的操作指南。

于 2013-04-24T02:10:36.467 回答