讨论:ssh2的异常处理 哦,不好意思,失误,用struts2+hibernate3.2+spring2.5架构的项目,对于异常的处理各位有什么心得体会或建议等等, 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 SSH2 现在开始说明如何在 UNIX 下使用 SSH 连线。此教材谈的是欧洲 SSH Communications Security 公司出版的 SSH2 软体套件,而非 OpenSSH。SSH2 虽然是一个商业组织生产的软体,但仍是开放性的软体。 SSH2 和 OpenSSH 理论上符合一样的协定规格,但是两个不同的程式,请读者留意。 以下,我们用 SSH 代表 SSH2。 首先,请先确定你所使用的主机和要连线的主机都有安装 SSH 2.4.0 以上的版本,如果任何一端没有安装,那麼当然无法使用 SSH 连线。 在本地端 (Local): 下指令 ssh -v 如果你目前使用的主机有安装 SSH,视窗会出现以下的回应: ssh: SSH Secure Shell x.x.x (non-commercial version) on sparc-sun-solaris2.6 其中 x.x.x 就是 SSH 的版本, 2.4.0 以下的版本虽然可以连线,但可能会有安全上的漏洞。 要是视窗出现类似下面的回应: OpenSSH_3.4p1 FreeBSD-20020702, SSH protocols 1.5/2.0, OpenSSL 0x0090601f 那表示你目前使用的主机用的是 Opne SSH,那只好请你自己去看说明文件[输入 man ssh ]。 如果视窗出现下面的回应: ssh: Command not found. 表示这台主机根本没有安装 SSH 或 OpenSSH。 远方主机 (Remote): 下指令 telnet HostName 22 在这里 HostName 指的是远方主机的位址。 如果出现类似下面的回应: Trying 140.115.25.6... Connected to 140.115.25.6. Escape character is '^]'. SSH-2.0-x.x.x SSH Secure Shell (non-commercial) 表示远方主机安装了 SSH x.x.x 版。 要跳回去,请按 Ctrl+],当提示符号变成 telnet> 时下指令 quit 就可以了。 要是出现下面的回应: Trying 140.115.25.4... Connected to 140.115.25.4. Escape character is '^]'. SSH-1.99-OpenSSH_3.4p1 FreeBSD-20020702 请注意最后一行,这表示远方主机所安装的是 OpenSSH,你恐怕无法用 SSH 和 OpenSSH 互相沟通。跳回去的方法和 SSH 的一样,所以就不重复了。 要是出现下面的回应: Trying 140.115.26.32... telnet: Unable to connect to remote host: Connection refused 表示远方主机既没有安装 SSH,也没有安装 OpenSSH。 如果确认没问题,那我们就一步一步来:(以下的说明,请特别注意大小写) 一、制作公钥和私钥 请下指令 ssh-keygen2 name 在此 name 是由使用者自行选择的钥匙名字。输入后,视窗会出现以下回应: Generating 1024-bit dsa key pair 请等待一段时间,此时程式正在制作钥匙,钥匙完成后会出现下面的讯息: Key generated. 1024-bit dsa, liyl@wangwei, Wed Jul 17 2002 06:57:08 Passphrase : 程式会要求使用者输入通行码以避免私钥被人盗用。当你输入通行码后,视窗会出现以下回应: Again : 要求你再输入一次通行码以确认你刚刚并没有打错。最后会出现下面的讯息: Private key saved to name Public key saved to name.pub 这段讯息表示程式把私钥用 name 作档名储存起来,把公钥用 name.pub 作为档名储存起来。 二、使用钥匙 钥匙做好以后,放在你自己的目录下的 .ssh2/ 下,然后你要写一个档案,命名为 identification,放在 .ssh2/ 下,把下面这行文字加进去: IdKey name name 是你的放私钥的档案的名字。这麼一来钥匙便算是开始启用了。 三、交换公钥 钥匙完成以后,就必须上传到远方主机中自己的目录下的 .ssh2/ 资料夹中,另一方面,你也必须把远方主机的公钥放到自己这边的 .ssh2/ 下。下指令 sftp UserName@HostName 这里 HostName 是远方主机的位址, UserName 则是你自己的帐号。 如果你是第一次用 SSH 的程式登入这一台主机,那麼主机会问你要不要把属於这台主机的钥匙[ HostKey ]记下来,请视情况回答 yes 或 no [回答 y 或 n 是没用的],大部分情况应该都是回答 yes 的。 接著应该会要求你输入帐号的通行码,登入之后,操作方式和 ftp 一样,请照之前的说明交换公钥,然后登出回到原来工作的主机。 接著要再编辑另一个档案 authorization,放在 .ssh2/ 下,加入这一行文字: Key PublicKey.pub PublicKey.pub 是你从其他地方抓下来的公钥的档名。如此一来,你这边的准备工作就算完成了。以后如果你从其他地方抓了新的公钥,只要再加上同样的文字就可以了。像这样: Key abc.pub Key def.pub Key jklljl.pub 这样表示你从三个不同的远方主机抓到了三个公钥:abc、def、jklljl, SSH 会自行判断什麼时候要用哪支公钥。 四、登入 要使用 ssh 登入,下指令 ssh -l UserName HostName 其中 HostName 是远方主机的位址, UserName 是你的帐号。 如果远方主机中的 .ssh2/authorization 还没有修该的话,程式应该会向你要通行码,此时你的通行码是在加密状态。登入后,同样编辑 authorization,加入 Key PublicKey.pub 这里的 PublicKey.pub 则是你上传到这台主机的公钥的档名。 再来先登出,再用 SSH 登入,如果看到类似下面的讯息: Passphrase for key "/home/math88/liyl/.ssh2/bgs" with comment "1024-bit dsa, li: 这就代表程式要求你输入私钥的通行码[当然,如果你没有设定通行码,那你就直接登入,不用任何通行码],输入以后,程式就登入远方主机,此时所有在网路上互传的讯息都是加密的。来源:http://zhidao.baidu.com/question/6995765.html Eclipse For J2EE 3.6 + WTP + SSH2、寻找教程、实在不行淘宝交易 关于hibernate返回值list封装成一个数组的通用方法(求教) JAVA高手请进!jsp中如何实现数据的逐条删除? 北京:JAVA高级工程师 JDOQL 能像 SQL 一样进行模糊查询吗? 关于eclipse 帮个忙吧~! 几个概念性的问题,不过比较重要,帮顶者也有分 在WEBLOGIC7部署EAR文件的问题 新浪微博抓取问题 这里有谁研究过 openProj 的源代码? struts 验证框架与表单字段问题
现在开始说明如何在 UNIX 下使用 SSH 连线。此教材谈的是欧洲 SSH Communications Security 公司出版的 SSH2 软体套件,而非 OpenSSH。SSH2 虽然是一个商业组织生产的软体,但仍是开放性的软体。 SSH2 和 OpenSSH 理论上符合一样的协定规格,但是两个不同的程式,请读者留意。
以下,我们用 SSH 代表 SSH2。 首先,请先确定你所使用的主机和要连线的主机都有安装 SSH 2.4.0 以上的版本,如果任何一端没有安装,那麼当然无法使用 SSH 连线。
在本地端 (Local):
下指令
ssh -v
如果你目前使用的主机有安装 SSH,视窗会出现以下的回应:
ssh: SSH Secure Shell x.x.x (non-commercial version) on sparc-sun-solaris2.6
其中 x.x.x 就是 SSH 的版本, 2.4.0 以下的版本虽然可以连线,但可能会有安全上的漏洞。
要是视窗出现类似下面的回应:
OpenSSH_3.4p1 FreeBSD-20020702, SSH protocols 1.5/2.0, OpenSSL 0x0090601f
那表示你目前使用的主机用的是 Opne SSH,那只好请你自己去看说明文件[输入 man ssh ]。
如果视窗出现下面的回应:
ssh: Command not found.
表示这台主机根本没有安装 SSH 或 OpenSSH。
远方主机 (Remote):
下指令
telnet HostName 22
在这里 HostName 指的是远方主机的位址。
如果出现类似下面的回应:
Trying 140.115.25.6...
Connected to 140.115.25.6.
Escape character is '^]'.
SSH-2.0-x.x.x SSH Secure Shell (non-commercial) 表示远方主机安装了 SSH x.x.x 版。
要跳回去,请按 Ctrl+],当提示符号变成 telnet> 时下指令 quit 就可以了。
要是出现下面的回应:
Trying 140.115.25.4...
Connected to 140.115.25.4.
Escape character is '^]'.
SSH-1.99-OpenSSH_3.4p1 FreeBSD-20020702 请注意最后一行,这表示远方主机所安装的是 OpenSSH,你恐怕无法用 SSH 和 OpenSSH 互相沟通。跳回去的方法和 SSH 的一样,所以就不重复了。
要是出现下面的回应:
Trying 140.115.26.32...
telnet: Unable to connect to remote host: Connection refused
表示远方主机既没有安装 SSH,也没有安装 OpenSSH。
如果确认没问题,那我们就一步一步来:(以下的说明,请特别注意大小写) 一、制作公钥和私钥
请下指令
ssh-keygen2 name
在此 name 是由使用者自行选择的钥匙名字。输入后,视窗会出现以下回应:
Generating 1024-bit dsa key pair
请等待一段时间,此时程式正在制作钥匙,钥匙完成后会出现下面的讯息:
Key generated.
1024-bit dsa, liyl@wangwei, Wed Jul 17 2002 06:57:08
Passphrase :
程式会要求使用者输入通行码以避免私钥被人盗用。当你输入通行码后,视窗会出现以下回应:
Again :
要求你再输入一次通行码以确认你刚刚并没有打错。最后会出现下面的讯息:
Private key saved to name
Public key saved to name.pub 这段讯息表示程式把私钥用 name 作档名储存起来,把公钥用 name.pub 作为档名储存起来。 二、使用钥匙
钥匙做好以后,放在你自己的目录下的 .ssh2/ 下,然后你要写一个档案,命名为 identification,放在 .ssh2/ 下,把下面这行文字加进去:
IdKey name
name 是你的放私钥的档案的名字。这麼一来钥匙便算是开始启用了。 三、交换公钥
钥匙完成以后,就必须上传到远方主机中自己的目录下的 .ssh2/ 资料夹中,另一方面,你也必须把远方主机的公钥放到自己这边的 .ssh2/ 下。下指令
sftp UserName@HostName
这里 HostName 是远方主机的位址, UserName 则是你自己的帐号。
如果你是第一次用 SSH 的程式登入这一台主机,那麼主机会问你要不要把属於这台主机的钥匙[ HostKey ]记下来,请视情况回答 yes 或 no [回答 y 或 n 是没用的],大部分情况应该都是回答 yes 的。
接著应该会要求你输入帐号的通行码,登入之后,操作方式和 ftp 一样,请照之前的说明交换公钥,然后登出回到原来工作的主机。
接著要再编辑另一个档案 authorization,放在 .ssh2/ 下,加入这一行文字:
Key PublicKey.pub
PublicKey.pub 是你从其他地方抓下来的公钥的档名。如此一来,你这边的准备工作就算完成了。以后如果你从其他地方抓了新的公钥,只要再加上同样的文字就可以了。像这样:
Key abc.pub
Key def.pub
Key jklljl.pub 这样表示你从三个不同的远方主机抓到了三个公钥:abc、def、jklljl, SSH 会自行判断什麼时候要用哪支公钥。 四、登入
要使用 ssh 登入,下指令
ssh -l UserName HostName
其中 HostName 是远方主机的位址, UserName 是你的帐号。
如果远方主机中的 .ssh2/authorization 还没有修该的话,程式应该会向你要通行码,此时你的通行码是在加密状态。登入后,同样编辑 authorization,加入
Key PublicKey.pub
这里的 PublicKey.pub 则是你上传到这台主机的公钥的档名。
再来先登出,再用 SSH 登入,如果看到类似下面的讯息:
Passphrase for key "/home/math88/liyl/.ssh2/bgs" with comment "1024-bit dsa, li:
这就代表程式要求你输入私钥的通行码[当然,如果你没有设定通行码,那你就直接登入,不用任何通行码],输入以后,程式就登入远方主机,此时所有在网路上互传的讯息都是加密的。来源:http://zhidao.baidu.com/question/6995765.html