讨论:ssh2的异常处理

tscqnl 2009-02-21 10:24:22
各位大虾,
对于ssh2的异常处理有什么心得体会或建议等等,
在此分享一下。
...全文
192 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
tscqnl 2009-02-22
  • 打赏
  • 举报
回复
顶一个
chyyyin 2009-02-21
  • 打赏
  • 举报
回复
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
tscqnl 2009-02-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 w412692660 的回复:]
ssh2?
[/Quote]
[Quote=引用 2 楼 fengda2870 的回复:]
楼主的问题描述的不够清楚
[/Quote]


哦,
不好意思,
失误,

用struts2+hibernate3.2+spring2.5架构的项目,
对于异常的处理各位有什么心得体会或建议等等,
chowqingbao1 2009-02-21
  • 打赏
  • 举报
回复
把经常遇到的错误放在文档里
netsocket 2009-02-21
  • 打赏
  • 举报
回复
mark
fengda2870 2009-02-21
  • 打赏
  • 举报
回复
楼主的问题描述的不够清楚
然月枕流君 2009-02-21
  • 打赏
  • 举报
回复
ssh2?

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧