如何从su命令获取密码?

时间:2014-06-04 14:56:18

标签: linux bash shell scripting suse

我正在将文件从远程服务器复制到本地服务器。以下是执行此操作的代码:

ssh -q username@$192.168.162.156 "su -lc 'cp /copy/from /copy/it/here'"

我在for循环中使用此代码段,因此它会在每次迭代时提示输入密码。如何从su命令获取密码? (不使用rsync或sudo)。即使它们更好,我也不想要任何替代品。

3 个答案:

答案 0 :(得分:2)

在本地服务器中执行:

scp remote_user@remote_server:/path/to/files /dir/to/copy

在本地计算机上执行时,以用户 remote_user 登录 remote_server ,并将 / path /中的文件复制到/ files / 中远程服务器到本地服务器中的 / dir / to / copy /

您可能需要设置passwordless ssh连接,以便在不需要密码的脚本中运行它。

阅读man scp了解更多信息。

答案 1 :(得分:0)

您可以通过stdin传递密码:

echo 'password' | su -c [...]

答案 2 :(得分:0)

如果您的问题是重复的密码提示,您可以尝试

  1. 在主机
  2. 之间创建无密码的ssh设置
  3. 使用perl的new ssh module
  4. 点击所有文件,然后通过网络发送。这样只发送一个tar文件,密码提示只会一次。