我正在尝试创建一个 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 $@