问题
- 我们有一个完全可以控制的服务器
- 我们有一个长而复杂的shell脚本,它通过SCP和SSH与该服务器交互
- 我们有一个运行脚本的Ant Target
简化示例:
<target name="run-script">
<exec executable="/path/to/script_that_runs_ssh_cmds.sh" />
</target>
此目标失败,出现以下异常:
ssh_askpass: exec(/usr/libexec/ssh-askpass): No such file or directory
问题
经过研究,我认为这可以通过生成公钥/私钥对来解决。这样,ssh命令就不必提示输入密码。假设这个解决方案能起作用,你该如何让系统上的SSH调用使用密钥来代替提示输入密码?有没有可能让我们团队中的任何人都能在笔记本电脑上成功运行Ant目标?
注意:我们都在运行OSX10.6(Leopard),并且物理连接到与服务器相同的局域网。
您只需在~/.ssh
下安装私钥,ssh
就会自动查找该目录并使用您安装的密钥。
在服务器端,将公钥添加到~/.ssh/authorized_keys