JTA(java telnet/ssh client)不能telnet/ssh远程机器问题与解决

最近公司在使用一个java ssh client(JTA http://javassh.org/space/start)来做为web页面中远程telnet/ssh机器的客户端,但是在使用jta提供的applet的时候总是不能telnet/ssh,但是在下载了源码包之后,直接使用源码包中的测试页面是可以访问的,后来查了一下资料,看了一下jta的日志发现是因为jta的applet里使用了Socket去连接远程机器的,而在applet里使用Socket是会有安全问题的,默认是不允许的,对于这个问题其实是有两个解决办法的,第一个是修改每个客户端的java.policy文件,添加对Socket访问允许的配置;另一个是对applet的jar文件做数字签名,这样就客户端就不需要做任何修改,只是在用浏览器访问applet出现提示的时候选择信任这个签名的applet就可以了。下面就对两种方法做个说明:

1. 修改本地策略文件

  在本地的以下两个文件

  {JAVA_HOME}/jre/lib/security/java.policy

  {JRE_HOME}/jre/lib/security/java.policy

  在其中grant部分添加

  permission java.security.AllPermission;

  然后重新启动浏览器再次访问applet就可以访问远端机器了

2. 添加数字签名

  1) 下载最新的jta包,这里假定使用的是jta26.jar

  2) 运行 keytool -genkey -keystore jta26.store -alias jta26

  3) 运行 keytool -export -keystore jta26.store -alias jta26 -file jta26.cert

  4) 运行 jarsigner -keystore jta26.store jta26.jar jta26

  5) 然后重新启动浏览器再次访问applet就可以访问远端机器了

 

参考资料:

http://www-personal.umich.edu/~lsiden/tutorials/signed-applet/signed-applet.html

 

你可能感兴趣的:(java,socket,浏览器,jar,测试,applet)