我需要编写一个shell脚本来连接到不同的Linux机器并删除那里的文件。
例如,
ssh booksserver
rm -rf Books-ws.war
现在,我的问题是,如何提供密码(执行ssh booksserver时需要)?
答案 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)
您不能,但必须使用基于密钥的身份验证。
那是:
这方面有很多教程,具体步骤可能因发行版而异。对于Ubuntu,这个是一个很好的:https://help.ubuntu.com/community/SSH/OpenSSH/Keys