服务器允许 SSH 连接,但不允许使用公钥身份验证。目前我没有能力改变这一点(由于技术困难,而不是组织方面的问题),但我会尽快完成!
我现在需要的是使用来自脚本的普通旧帐户+密码身份验证在服务器上执行命令。也就是说,我需要以非交互方式进行。是否可以?我该怎么做?
将执行脚本的客户端运行 Ubuntu Server 8.04。服务器运行 Cygwin 和 OpenSSH。
sol*_*ald 25
有一个名为sshpass. 它允许您完全按照自己的意愿行事,并将服务器密码作为命令行参数或从文件中获取(我更喜欢这种方式,所以我的服务器密码没有显示在 shell 历史记录中)并且您使用它像这样:
sshpass -f file_with_password ssh user@server ls -la
这将通过 ssh 连接到服务器并运行ls -la. 但是,有一件事,您必须先手动 ssh 进入服务器(如果您还没有这样做),这样服务器就会被添加到您的~/.ssh/known_hosts. 如果你不这样做,sshpass将无法工作。
取决于您使用的脚本语言。我现在用 python 编写几乎所有的东西,这不是问题。pyssh 和 Paramiko 都可以让您轻松编写密码脚本。
如果您打算使用 (ba)sh 脚本来完成它并使用 OpenSSH,它会变得更难。OpenSSH 明确阻止您将密码放在命令行上(因为所有用户都可以使用类似 的东西查看命令行ps -fe,这很糟糕)。在这种情况下,您将不得不直接与 ssh 程序交互并有两个选项:
| 归档时间: |
|
| 查看次数: |
30750 次 |
| 最近记录: |