linux - 来自 Bash 脚本内部服务器的 scp 文档

标签 linux bash shell scp

<分区>

我通常像这样使用 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 提供密码?在此先感谢!

最佳答案

与其在 shell 脚本中硬编码密码,不如使用 SSH key ,它更简单、更安全。

$ 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 key 以供使用(一次性任务): 复制 ~/.ssh/id_rsa.pub 的内容并在 myserver 的新行中粘贴新的 ~devops/.ssh/authorized_keys 行。组织 服务器。如果 ~devops/.ssh/authorized_keys 不存在,请随意创建它。

提供了清晰的操作指南 here .

关于linux - 来自 Bash 脚本内部服务器的 scp 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16182190/

相关文章:

linux - OpenNMS RADIUS 认证

python - 在没有 sudo 权限的 Linux 系统上安装 Python TA-lib 包时出错

bash - uniq - 比较行时跳过最后 N 个字符/字段

bash - 如何将自定义字符串作为 argv[0] 传递给程序

linux - 如何执行流式字符转换?

c - 用于进程间通信的 pause() 和 sigsuspend()

android - 使用 TravisCI 将 APK 上传到 Github

linux - 根据另一列从 .csv 文件中提取特定列

linux - 在 Windows 和 Linux 上的 Dockerfile 中使用 RUN 命令

linux - source 命令没有使用 shell 脚本将变量导出到 zsh 环境