在 《ssh工具,开发者必须有所了解》 这篇文章中,概念性介绍了ssh知识,可对大多数人来说,会使用ssh工具才更有用,比如对我来说,成功登录ssh服务器后,才有动力继续了解其他ssh功能。
ssh登录通常有两种方式,分别是口令验证和密钥对验证,口令登录非常简单,运行 ssh root@localhost,然后输入正确口令后就能成功登录。
可你知道背后的细节吗?这也是我写这篇文章的目的,ssh协议和tls协议一样,都组合了很多密码学算法,用于解决网络安全问题,掌握ssh协议的原理对于理解密码学很有帮助,密码学算法有很多,比如AES对称密钥算法,公开密钥算法(DH密钥协商算法,RSA非对称加密算法),MAC算法,Hash算法,如果你大概了解这些算法,理解ssh协议会相对简单一点,否则可能会比较吃力。
了解ssh协议另外一个好处就是,遇到问题的时候就不会慌乱,也能够更安全的使用ssh。
本文先介绍相对简单的ssh口令登录,在介绍之前,先了解ssh协议的三个子协议:
这三个协议中,最后一个相对复杂,本文主要讲解前二个协议。
ssh口令登录主要分为两个阶段,第一阶段是协商出一个会话密钥,在客户端和服务器端之间构建一条安全的通道。第二个阶段在这条通道上验证客户端登录权限。
ssh服务器默认绑定在22端口,监听客户端的请求,在启动的时候会生成一个密钥对(公钥和私钥),一般是RSA算法密钥对,在第一阶段会将公钥发送给ssh客户端,主要让客户端确认ssh服务器端的身份,除了这个作用,我 目前 没有看到这个密钥对还有其他作用。
为什么说“目前”呢?因为我并没有看 ssh rfc 文档,是通过 wireshark 抓包了解 ssh 协议的,从概念性上 猜测 ssh协议原理。
先上一张图,看看ssh登录产生了那些包,大家可以wireshark抓包,然后过滤出ssh包(不看 tcp 包):
其中红线就是ssh登录的第一阶段,该阶段一般输入 ssh root@localhost 就能产生。
另外蓝色就是ssh登录的第二阶段,输入口令后就会产生这些包。
接下去我们先介绍第一个阶段发生了什么:
1:客户端首先发送一个连接请求(序号4),告诉服务器端它目前支持的ssh版本号。
2:服务器端也响应ssh版本号,双方一般协商出的版本号是 ssh v2
3:客户端初始化连接(序号9),进行密钥交换,告诉客户端其支持的各类算法,如下图:
4:然后服务器端也告诉客户端其支持的各类算法(序号10),最后协商出一致的算法,并发送服务器公开密钥对的公钥。
5:如果第一次ssh登录,ssh客户端会提示用户确认服务器公开密钥对公钥的指纹(即公钥的md5值),当然这个在网络包中是体现不出来的。
如果你第一次ssh登录,会出现下图:
如果你确认该指纹就是你想连接ssh服务器的,那么就会将公钥保存到 ~/ssh/known_hosts 文件中,下一次你再登录的时候,ssh客户端发现指纹和ssh服务器发送的指纹是一致的,就不会再让你确认了。
指纹非常重要,后面我会再说。
6:客户端接下去就是要发送 DH 算法密钥对的公钥了(序号13),注意这个密钥对和服务器公开密钥对不是一回事
不管是客户端还是服务器端,各自保留自己的 DH 密钥对的私钥,并将自己的 DH 密钥对的公钥发送给对方,这样双方就会协商出最终的会话密钥(用于对称加密)。
DH 算法就不多描述了,有兴趣可以看看我的书《深入浅出>给你一套GM命令你可以进行参考。。我想有可能会帮到你。。你想要的那个征途单机,取消GM无敌状态命令也在里面。。没事的时候慢慢研究吧。
//gomap name=凤凰城
//gomap name=龙冈山二寨
//gohome (回到原来出生的位置)
//levelup "升级"
//levelup num=130(当前等级+num)
//levelup set=160 修改等级为100级
//levelup round=1 修改转生等级为1转
//levelup name=xxx round=1 转生命令
//levelup name=xx set=xxx
//fetch name=乾坤戒指(物) type=14 fivetype=0 Upgrade=12(有太阳的)
//fetch name=至尊仙衣(男) type=15 fivetype=0 Upgrade=12(有太阳的)
//fetch name=九天神龙铠 type=14 fivetype=0 Upgrade=14(有太阳的)
征途无敌状态
//god (无敌状态,如果想取消无敌状态就在输入一次此命令即可)
//killer (一击杀)
//fetch name=天羽令
//fetch name=房契
//fetch name=御赐金符
demo版本的物品
//fetch name=房契
//fetch name=青龙戒指(物)
//fetch name=精致升级宝石 num=40
//fetch name=青龙戒指(物) type=14 fivetype=0 (01234=风雨雷电火)
//fetch name=至尊扇 type=15 fivetype=0 Upgrade=12(有太阳的)
//fetch name=乾坤戒指(魔) type=15 fivetype=0 Upgrade=12(有太阳的)
//fetch name=铁 level=8 num=40 (3代表铁原料是4等)
//fetch id=665 num=1000000 (银子)
//value gold=1000000 (金子)
//value mp=110000 (蓝)
//value hp=10000 (血)
学习技能
//studyskill name=凤舞九天 (学习技能,技能的使用需要相关的武器)
//studyskill name=天诛
//studyskill name=劫火
//studyskill name=绝对零度
//studyskill name=雷霆九打
//studyskill name=乱舞
//studyskill name=雷神锤击
//studyskill name=雷神之怒
//studyskill name=光莲破
//studyskill name=强化冲锋
//studyskill name=暴走
//studyskill name=奔雷决
升级
//levelup num=130(当前等级+num)
召唤
//summon name=龙麟圣兽
//summon name=狼王 num=20
//summon id=50008 num=40 蚊子
//summon name=猴子 num=30
//summon name=兔子 num=60
//summon id=15007 num=3
//summon id=60001 num=3
//summon id=60002 num=5
//summon id=5017 (武器商)
//summon id=5007 (药店)
//summon id=56000 (村长贾仁) pic=56
//summon id=56001 (庞叔) pic= 76
//summon id=807 药店伙计
//summon id=813 小雪
//summon id=515 闻广
//summon id=509 科技大臣
//summon id=7005 大臣
//summon id=236 秘籍收藏家
//summon id=102 武器商王仁
//summon name=画师
//summon name=隐者
//summon name=马叔
//summon name=股票商
//summon name=高级杂货商
//bcworld xxxxx 全区通告
首先需要检查服务器的管理员账号密码安全,查看服务器是否使用弱口令,包括administrator账号密码,Mysql数据库密码,网站后台的管理员密码,都需要逐一的排查,检查密码安全是否达标。
在检查一下服务器系统是否存在恶意账号,以及新添加的账号,像admin,admin$这样的账号一般都是由攻击者创建,可以采用运行,输入cmd命令,netuser查看,再看注册表里的账号。
2、服务器端口,系统进程安全检测
打开CMDnetstat-an检查当前系统的链接情况,查看是否存在一些恶意的IP链接,比如开放了一些不常见的端口,正常是用到80网站端口,8888端口,21ftp端口,3306数据库的端口,443SSL证书端口,9080java端口,22SSH端口,3389默认的远程管理端口,1433SQL数据库端口,除以上端口要正常开放,其余开放的端口都需要仔细检查。
3、服务器启动项,计划任务安全检测
查看服务器的启动项,输入msconfig命令,看一下是否有多余的启动项目,如果有检查该启动项是否正常,然后再查看服务器的计划任务,通过控制面板。组策略查看,服务自启动,查看系统有没有自己主动启动一些进程。
4、服务器的后门木马查杀
下载360杀毒,并更新病毒库,对服务器进行全面的安全检测与扫描,修复系统补丁,对网站代码进行人工安全检测,对网站漏洞的检测,网站木马后门的检测,也可以使用webshell查杀工具来进行查杀,重要的木马规则库。大家好,最近在网上看到有个传说中“世界最强的数控模拟仿真 ”,于是就手痒痒,迫切的想寻来试试,然而在安装过程中可能有点小错误,结果运行老是报错,不是什么“口令服务器错误”就是“服务器时间不对”什么的,可把我给纠结死了,于是上网也找了好多教程,还有的说是win7不能安装,着实让我伤心死了,但本人切换了xp系统居然也不行,于是我就开始了苦命的寻觅解决办法的漫漫长路,嘿嘿嘿,也行是我太笨,花了好久才弄清楚个别出错的解决办法,于是拿上来和大家分享。废话不多说了,接下来说说怎么安装和破解,还有就是一两个常规报错的解决办法。哦,对,再啰嗦一句,VERICUT70在win7上是能用的,这已经过本人测试,并也同时在xp上测试过,至于已经安装好并且无报错的朋友可以忽略本文,我只是想给跟我遇到同样问题的朋友一点参考,不好意思,又多说了嘿嘿嘿。
一、安装步骤
1、vercut70程序安装:(这里提供的是vercut70程序的安装步骤,vercut716的安装步骤与其类似,只是进行到“口令服务器名”界面时一定要将中文形式的“本地主机”改为英文形式的“localhost”,其他安装相同)
安装软件需用虚拟光驱软件(如daemon tools)装载下载好的ISO光盘镜像文件(本人已上传vercut70的安装包在网盘地址是:)。
a) 放入虚拟光驱后,安装程序自动运行;如果没有自动运行,打开光盘,找到“installexe”,运行它。
b) 以下是安装过程画面:
2、破解:(vercut716破解时同此步骤,“cgtechlf”文件是通用的)
a) 把ISO光盘镜像根目录下“MAGNiTUDE”文件夹里的“cgtechlf”放到X:\cgtech70\windows\license 目录下,其中X 为文件安装目标分区。(由于该许可是有时间段限制的,如果是各位自己从网上下载的iso文件那可能就要将cgtechlf文件用记事本打开并按照网上的其他安装说明对cgtechlf文件进行修改,为了方便读此篇的朋友,我已经将对应年段所需的cgtechlf文件分别修改好并整合到本人上传的vercut70安装镜像中,同样在“MAGNiTUDE”文件夹里(在本人上传的vercut716安装镜像中破解文件是在“Crack”文件夹里),朋友们一看就会明白的,如果是自己从他处下载的,没事,我也已将我修改好的cgtechlf文件独立上传至网盘,欢迎各位下载使用。所以在这里如何按照自己安装的时间段修改cgtechlf文件,我就不说了,大家可以自己去下载我修改好的文件)
b) 单击“开始”→所有程序→CGTech VERICUT 70→ License Server Only→Configure License & Setup Server,d出DOS 界面。
根据提示 *** 作点2次确定后会d出一个如下所示的VB 编写对话框。
对话框出现后不用 *** 作什么,直接点“Close”按钮就好了(笔者学习过其他安装教程说要复制刚才cgtechlf文件里的所有内容再粘贴到这里面,经过笔者测试,其实这一步是没必要的,因为它会自动读出刚才粘贴到license文件夹里的cgtechlf文件里的内容)。关掉VB对话框后会回到DOC界面,回车或其他任意键,它会提示大概意思是稍等30秒,稍等片刻会跳出请按任意键继续(这也是英文的),我们回车或任意键,这时DOC界面就关闭了。
……………………到这里,其实其他都没错误的话那就可以直接双击桌面的“VERICUT 70”图标运行程序了,但界面是英文的。
3、汉化:(vercut716版本不需要汉化这一步哦)
将 X:\cgtech70\classes\chinese_simplifie 文件夹内的VcReslocal 文件复制粘贴到X:\cgtech70\classes\english目录下,接着直接双击“VERICUT 70”图标运行程序就可以了。
4、可能会遇到的问题:
(一)提示一:“口令服务器找到,但没有找到cgtech口令信息(可能版本错误)……”
1)可能性1:口令服务器名错误
a)原因分析:
原因可能是口令服务器名是中文,这一情况多见于VERICUT716中(或者其他版本在安装时进行到“口令服务器名”界面时有朋友自己进行了改动,用的不是默认的英文形式的口令服务器名“localhost”或本地计算机的计算机名),因为在VERICUT716版本的程序安装过程中,当进行到“输入口令服务器名”界面时,程序默认显示的是中文形式的“本地主机”,如果你没将其更改为英文形式的“localhost”,那么在安装及破解步骤都完成后打开程序就会出现这个警告。
b)解决方法:
这里不需要重装软件哦。只要点选“开始”—“所有程序”“CGTech vericut716”—“license Administration”—“指定口令服务器计算机”(在vericut716以前的版本里这一选项可能不是中文,英文是“Specify license server computer”),此时计算机会以记事本形式打开"cgtenvbat"文件,在界面里的最后一行的等号后面就是口令服务器名,因为之前是默认的中文形式的“本地主机”,故我们需将它更改为英文形式的“localhost”或者本地计算机的计算机名(如下图)并保存。
(如果是VERICUT716以前版本的,即安装运行到输入“口令服务器名”界面的时候,默认的口令服务器名就是英文形式“localhost”的话,笔者建议安装时就不用将“localhost”改为其他名字了)。改好口令服务器名后还需进行下面一步:点选“开始”—“所有程序”“CGTech vericut716”—“license server only”—“更新当前运行服务器的口令”(在vericut716以前的版本里这一选项可能不是中文,英文是“update licenses on running server”),运行软件,就可以了。
2)可能性2:证书错误(即“cgtechlf”文件修改错误)
先是检查自己的“cgtechlf”文件是否修改正确,2012年10月后到2013年10月安装的可以直接复制本人上传到网盘的“cgtechlf文件(2012年10月—2013年10月间安装的请用这个)”文件夹里的“cgtechlf”文件到x\x\windows\license下,如果是2013年10月后到2014年10月安装的,同样的可以复制本人上传到网盘的“cgtechlf文件(2013年10月—2014年10月间安装的请用这个)”文件夹里的“cgtechlf”文件到x\x\windows\license下。接着重新加载一遍“开始”→所有程序→CGTech VERICUT 70→ License Server Only→Configure License & Setup Server,加载完成后再双击打开VERICUT70,看看问题是否解决。
(二)提示二:“不能检测出特征ALLWIN:(0x1a)不能检查一个vercut临时口令,因为服务器时间已经设置错误……”或“因为无效的临时口令文件,不能执行程序”
解决方法:
首先检查电脑系统时间是否与当前时间一致,再检查“cgtechlf”文件内容是否正确(不确定的话可以根据当前的时间段,直接复制粘贴我上传的“cgtechlf”文件到相应目录),检查口令服务器名是否是默认的英文形式。
如果前面所有步骤都做齐,但打开软件,还是出现什么系统时间不对,这类的警告,那么其实这可能是电脑之前改过时间,并且会在一个文件夹里生成一个servdatslm隐藏文件(文件的地址在下面会说明),而被vericut检测到了,那么就按照下面步骤来做:
1)、停止 Vericut 的License 系统服务(就是点选“开始”—“所有程序”“CGTech vericut716”—“license server only”—“停止口令服务器服务”(在vericut716以前的版本里这一选项可能不是中文,英文是“stop license server service”)”)
2)、删除系统“servdatslm” 文件(该文件是隐藏的,地址可以通过“搜索文件和文件夹”工具在C盘里查找,也可以参照我提供的地址“C:\Documents and Settings\All Users\Application Data\SafeNet Sentinel\Sentinel RMS Development Kit\System”,这是在xp里的地址,(“C:\ProgramData\SafeNet Sentinel\Sentinel RMS Development Kit\System”这是win7里的地址)找到后毫不犹豫的删掉它就行了,嘿嘿,放心不会对系统有影响,只要下次你再有改系统时间的时候它又会自动生成的,但时间改动大的话那你的Vericut就又会出现时间错误咯,嘿嘿嘿): W: Z" K# j4 F! Y1 R$ y
这是在xp系统时找到的“servdatslm” 文件所在文件夹的截图:! t, W M+ Z6 M5 V4 m
3)、删除注册表中“HKEY_LOCAL_MACHINE\SOFTWARE\Ntpad”键 (点左下角“开始—运行”或按“win键+R”跳出运行窗口,在输入框中输入“regedit”再回车,进入注册表编辑器,接着按前面提供的注册表地址“HKEY_LOCAL_MACHINE\SOFTWARE\Ntpad”,右键删除掉“Ntpad”键就行了,嘿嘿,这个也不用担心会对系统有影响)
4)、重新启动 Vericut 的License 系统服务(就点选“开始”—“所有程序”“CGTech vericut716”—“license server only”—“开始口令服务器服务(在vericut716以前的版本里这一选项可能不是中文,英文是“start license server service”)
5)、注意,这还差一步,还要点选“更新当前运行服务器的口令”(就是点选“开始”—“所有程序”“CGTech vericut716”—“license server only”—“更新当前运行服务器的口令(在vericut716以前的版本里这一选项可能不是中文,英文是“update licenses on running server”),如果这一步不做,经过本人测试,打开软件还是会报错,报错了没事,如果前面几步都已经严格按步骤做了,那么只要关掉软件,补上这一步,再打开软件就行了,打开了之后是不是有惊喜?嘿嘿嘿,当初我遇到这个问题可把我郁闷了一整天哪,在网上找了一大堆方法,其实最主要的是我没找到“servdatslm”文件,网上说的是在“系统目录System32下”,而我仔仔细细找了一圈还是没找到,最后发现了问题的源头,终于把软件打开了那是多么的幸福啊,嘿嘿嘿,希望你也能通过我的方法把问题解决掉
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)