用于自动化 scp 查询的 Shell 脚本

用于自动化 scp 查询的 Shell 脚本

我正在尝试创建一个 shell 脚本,该脚本将使用我的私钥、我选择的端口以及常用的用户帐户(不是我自己的帐户)自动 scp。我可以通过执行以下操作为 ssh 实现此操作。

####!/bin/bash

ssh -p (port#) <port #> -i ~/.ssh/.id_dsa  -o StrictHostKeyChecking=no -l admin $@

对于 scp 我目前有以下内容。

####!/bin/bash

scp -P (port#) -i ~/.ssh/.id_dsa  $1   admin $@

如果我尝试运行命令而不指定用户名,我会得到以下结果。

user:~$ scputil <file to transfer> host:/tmp
[email protected]'s password:

正如您所看到的,当我希望使用管理员时,它却要求输入我的用户的密码。

如果我指定用户以及我的命令,它会按我预期的方式工作

user:~$ scputil <file to transfer> [email protected]:/tmp/
<file to transfer>                                          22%   78MB  13.1MB/s   00:20 ETA

有谁知道如何在 shell 脚本中指定文件传输的用户?

提前致谢!

答案1

在 scp 中您可以使用 -o 选项传递 ssh 选项,用于登录进行文件传输。

因此,如果你想让 scp 以管理员身份登录,请使用User=admin

所以你的 scp 命令会变成类似

scp -o User=admin -P port -i public_key $@

相关内容