noHup - ssh
type: channel
link: http://chris.nohup.cc/tag/ssh/
items: ssh和FileZilla远程连接服务器的问题
items: Hibernate总结
items: Struts集成Ajax实现异步通讯

ssh和FileZilla远程连接服务器的问题
type: item
date: 2016-07-21T02:30:00+00:00
description: Overview1.问题所在2.解决办法2.1 文件改名(不推荐)2.2 直接指定密钥文件(推荐) Overview 前些天用ssh通过命令行登录我们的bastion4服务器还一切正常，到了昨天已经不能使用，但是用了相同的密钥的FileZilla依然可以登录，这就很奇怪了。 1.问题所在 用FileZilla登录到远程服务器，找到ubuntu用户下面的.ssh文件夹，打开之后可以看到只有一个文件authorized_keys，我把它下载下来。完成之后，我到本机的/home/young/Downloads文件夹里找到它，打开看到我的密钥已经添加进去了，看来是FileZilla可以找到本地/home/young/.ssh/BingjiaoYang_ssh这个文件，但是默认的 ssh ubuntu@bastion4.erc.monash.edu 命令现在已经找不到这个文件了。 经过Jerico和Chris两个人的指点，使用如下命令: ssh -vvv ubuntu@bastion4.erc.monash.edu 显示日志信息如下(只截取最后核心信息)： debug1: Next authentication method: publickey debug1: Trying private key: /home/young/.ssh/id_rsa debug3: no such identity: /home/young/.ssh/id_rsa: No such file or directory debug1: Trying private key: /home/young/.ssh/id_dsa debug3: no such identity: /home/young/.ssh/id_dsa: No such file or directory debug1: Trying private key: /home/young/.ssh/id_ecdsa debug3: no such identity: /home/young/.ssh/id_ecdsa: No such file or directory debug1: Trying private key: /home/young/.ssh/id_ed25519 debug3: no such identity: /home/young/.ssh/id_ed25519: No such file or directory debug2: we did not send a packet, disable method debug1: No more authentication methods to try. Permission denied (publickey). 意思就是找不到/home/young/.ssh/id_rsa这个文件。 2.解决办法 解决办法有如下两个。 2.1 文件改名(不推荐) 把/home/young/.ssh/BingjiaoYang_ssh这个文件改名为id_rsa,同时把/home/young/.ssh/BingjiaoYang_ssh.pub这个文件改名为id_rsa.pub,这时候再用原命令登录就没有问题了。但是这个解决办法明显没有看透本质，所以推荐下一种。 2.2 直接指定密钥文件(推荐) 在命令行中直接输入ssh，可以看到ssh的用法： ➜ ~ ssh usage: ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec] [-D [bind_address:]port] [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11] [-i identity_file] [-L [bind_address:]port:host:hostport] [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port] [-Q cipher | cipher-auth | mac | kex | key] [-R [bind_address:]port:host:hostport] [-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]] [user@]hostname [command] 可以看到，我们可以之间指定文件，来解决找不到文件的问题。所以，正确命令如下： ssh ubuntu@bastion4.erc.monash.edu -i /home/young/.ssh/BingjiaoYa…

Hibernate总结
type: item
date: 2015-12-18T05:03:35+00:00
description: Overview1. 初识Hibernate Overview 这里只是总结一下secretepdb这个项目用到的Hibernate的特性，Hibernate本身细节极其多，不太可能全部记得下来，也没有必要去记，用到的时候去查就可以了，而且Hibernate的设计也都是很符合常理的，所以用正常的思维去想，一般都能理得顺。 1. 初识Hibernate

Struts集成Ajax实现异步通讯
type: item
date: 2015-12-13T13:24:00+00:00
description: Overview2.1 需要的jar库2.1.1 Struts2接口包2.1.2 Json需要的包2.2 集成配置2.2.1 前端js请求2.2.2 配置struts.xml2.2.3 StatisticsAction2.2.4 再看前端js2.3 JSON简介 Overview secretepdb这个项目需要展现一些统计图表，我们使用了google的gchart，图表的数据源从数据库异步获取。这里就用到了Struts2和Jquery Ajax的集成。本身都是很规范的东西，应该不会出什么问题，但是特定条件下里面有个坑，在这里梳理一遍。 既然是Struts2跟Ajax集成，肯定也会用到Struts2本身的一些东西，可以先看看我之前写的：Struts2总结 这篇文章，接下来可能就好读一些。 与 Struts2总结 中提到的一样，本文使用的依然是struts-2.3.24.1。 2.1 需要的jar库 2.1.1 Struts2接口包 Struts2内置提供了对各种插件的支持，比如dojo，json，sitemesh等，并在doc文件夹中中提供了帮助文章，doc/struts2-plugins这个文件夹中就是所有支持的插件的帮助文档。 我们跟Ajax通讯所需要的就是就是struts2-json-plugin这个插件，等等...我们是要集成Ajax，可为什么要集成struts2-json-plugin这个看起来毫不相关的插件呢。这是因为，异步传输的通讯方式本身Struts2就支持，配置下struts.xml就可以实现，但是JAVA后台跟前端传输需要使用Json格式传输，而JAVA对象和Json格式的相互转换，就需要用到专有的Json包，所以Struts2提供了下面的插件： struts2-json-plugin-2.3.24.1.jar 这个插件也可以从struts-2.3.24.1的官方下载包的struts-2.3.24.1-all.zip中的lib文件夹中找到。 2.1.2 Json需要的包 处理Json格式需要使用下面的包： json-lib-2.4-jdk15.jar 因为Json包是独立的存在，所以jar的版本号跟Struts2没什么联系。整体来看就是，Struts2和Json都是独立存在的，而Struts2提供了一个插件包，用来将Json集成到Struts2中。 json-lib-2.4-jdk15.jar本身还依赖下面的包： commons-beanutils-1.8.0.jar commons-lang-2.4.jar ezmorph-1.0.6.jar log4j-1.2.15.jar commons-collections-3.2.1.jar commons-logging-1.1.14.jar 跟Struts2所依赖的包情况一样，除了commons-lang-2.4.jar，其他包版本号都没有限制，最简单的方式就是从struts-2.3.24.1-all.zip中的lib文件夹中找，里面都有，实际上因为依赖包跟Struts2有重叠，只需要添加三个包：commons-beanutils-1.8.0.jar、commons-collections-3.2.1.jar和commons-lang-2.4.jar。 特别需要说明的就是commons-lang-2.4.jar，因为commons-lang-2.4.jar和struts-2.3.24.1依赖的commons-lang3-3.2.jar包名都不同了，所以同时引入不会产生冲突，而json-lib-2.4-jdk15.jar依赖的是struts-2.3.24.1（commons-lang 2.0版本的包都可以），而不是commons-lang3-3.2.jar，如果不引入commons-lang-2.4.jar，不会报错，但是就是没办法成功转化数据格式。 2.2 集成配置 2.2.1 前端js请求 $.ajax({ type:"post", url:"ajaxAction/getDataByTypeStatisticsAction",//需要用来处理ajax请求的action,getDataByType为处理的方法名，StatisticsAction为action名，注意这里的ajaxAction/的写法，后面配置struts.xml的时候会提到。 async: true,//通讯是否需要异步执行，默认是true，也就是异步传输，当执行完$.ajax()函数后，js代码继续向下执行，不会等待结果返回。在这里特别的写出来是因为有时候，比如画图，你需要先拿到数据才能画图，因此这里可以设置为false，这样就可以拿到结果，程序才会执行$.ajax()后的代码。 data…