如何在Linux脚本中提供密码

时间:2011-11-29 10:07:45

标签: linux

我需要编写一个shell脚本来连接到不同的Linux机器并删除那里的文件。

例如,

ssh booksserver 
rm -rf Books-ws.war

现在,我的问题是,如何提供密码(执行ssh booksserver时需要)?

4 个答案:

答案 0 :(得分:1)

您应该创建密钥对并使用它而不是密码。谷歌提供了如何操作的说明,例如: http://pkeck.myweb.uga.edu/ssh/

答案 1 :(得分:1)

您不应提供密码。您应该设置public key authentication运行ssh-agent以登录,而系统不会要求您输入密码。

答案 2 :(得分:1)

最好在客户端使用无密码短语私钥,与服务器端authorized_keys文件中的公钥配对,使用特定命令(例如rm -rf Books-ws.war或某些shell脚本)这样做会运行。

例如,在.ssh/authorized_keys2中为远程主机上的给定用户提供以下内容:

command="date" ssh-rsa AAAAB3NzaC1yc2EAAAABIw[...]Q== Comment for passphraseless key

当您使用该密钥连接时运行date

[localhost] % ssh -i /path/to/id user@remotehost         
Sun 20 Nov 2011 20:29:59 EST
Connection to remotehost closed.

答案 3 :(得分:0)

您不能,但必须使用基于密钥的身份验证。

那是:

  • 您创建公钥和私钥(不含密码)
  • 将公钥复制到booksserver
  • 您将用户名和密钥传递给ssh,如下所示:ssh user @ booksserver -i keyfile

这方面有很多教程,具体步骤可能因发行版而异。对于Ubuntu,这个是一个很好的:https://help.ubuntu.com/community/SSH/OpenSSH/Keys