putty源代码(putty源码解析)[20240430更新]
admin 发布:2024-04-30 15:47 136
本篇文章给大家谈谈putty源代码,以及putty源码解析对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
putty是什么意思?
putty简介- -
本文结合ssh的几种常用功能介绍putty的使用
ssh是我最常用的远程连接协议,因为ssh本身连接使用加密的数据隧道,即便有人监听,也无法获得我们所在通讯的内容。ssh协议包括一个服务器端和客户端。一般来说,现在的Linux都带有open ssh,可以通过下面的命令看看是不是启用了sshd:
ps -ef | grep sshd
如果没有启用可以在/etc/init.d里面找到启用,没有安装就自己装装吧。或者RH系列有
/sbin/service sshd start
好了,我们看看ssh有什么其他的优点吧 :)
可以担当ftp数据传输功能
可以完美的转发X数据流
可以套接在其他的协议之上,从而为其他的加密
说了这么多,我们还是操作一下。使用ssh可以避免使用密码,虽然我们可以记住自己的密码,同时把登录密码设得很长,达到一定的安全性。但是有了ssh我们还可以选择保管自己的密钥,而不是记住自己的密码,或者记一个短一些的密码。putty里面为这个功能提供的产生密钥的工具是 puttygen.exe,对应命令ssh-keygen,可以生成DSA和RSA密钥,这个自己选择好了。产生密钥之后可以附加一个使用密钥的密码,如果不要,那就自己保管好自己的私钥了。putty产生的密钥有个小毛病,就是没有用户名,而ssh-keygen可以产生相应用户名,这使得putty不得不让我们多输入一行字——自己的用户名。
产生的密钥是一对,公钥和私钥。公钥可以上传到远端服务器上面,如openssh是在~/.ssh/authorized_keys,append到文件最后即可生效,而私钥就是通信的时候自己持有的密钥了。所以私钥一定要自己保管好,putty保存的是*.ppk文件,openssh是不需要后缀的,一般默认的是什么id_rsa和id_rsa.pub,注意rsa换成dsa即为DSA的密钥。
下一步使用ssh连接,如果没有其它要求,可使用putty界面设置好连接的对象,使用自己的私钥即可(此时可以保存成一个session,供以后使用),具体操作为:
Connection - SSH - Auth - Private Key File for Authorization
但是如果希望通过ssh转发X数据,使用图形化程序,那么就得打开X forwarding,这是在
Connection - SSH - Tunnel - Enable X11 Forwarding
使用openssh的资源实现更简单,ssh -X和-x管理开关,-l选择登录身份(默认是自己的用户名),适用自己产生的默认的密钥。
当然要能显示GUI还需要本地有一个X server,你可以使用Windows里面的Cygwin/X,基本安装下来100Mb不到(包括一个基本的win32的linux环境),如果想选用商业的,x-win32比较小巧,exceed功能比较全面。然后把本地localhost加入到xhost里面即可。
我们再说数据传输,这类似于ftp,但是信道是加密的,openssh里面提供的命令为scp src dst,注意对方必须有ssh服务开启,putty提供的等价命令是pscp,但是由于putty没有相应的配置,所以必须使用-l声明身份,-i声明密钥(私钥)的路径。
putty是什么
PuTTY是一个Telnet、SSH、rlogin、纯TCP以及串行接口连接软件。
较早的版本仅支持Windows平台,在最近的版本中开始支持各类Unix平台,并打算移植至MacOSX上。除了官方版本外,有许多第三方的团体或个人将PuTTY移植到其他平台上,像是以Symbian为基础的移动电话。PuTTY为一开放源代码软件,主要由SimonTatham维护,使用MITlicence授权。随着Linux在服务器端应用的普及,Linux系统管理越来越依赖于远程。在各种远程登录工具中,Putty是出色的工具之一。Putty是一个免费的、Windowsx86平台下的Telnet、SSH和rlogin客户端,但是功能丝毫不逊色于商业的Telnet类工具。
putty能装在linux环境下吗
putty开始的版本只支持Windows系统,后来的版本开始支持Unix系统,putty官方网站也说它是个Windows客户端,不过官网上有Unix版本的源代码提供下载。而且putty是MIT协议的开源软件,所以可以用官网上通过的Unix版本的源代码在Linux系统上编译安装,方法是先下载并解压源代码包,然后用cd命令切换到源代码目录,再切换到unix子目录,在这个unix子目录下进行编译,编译方法是先执行:./configure,再执行:make,如果编译成功,在目录中会有一个名为putty的二进制文件,用命令:./putty执行就可以启动putty了。
putty怎么加时间戳
putty 几乎是我用过的远程工具里面的最好的了。目前感觉还有的缺憾有
缺少标签页切换
没有命令窗口
log文件保存时没有保存时间线的选项
今天来动手为putty增加在保存的log的前面打上时间标签。
下载putty的源代码,假设你把它解压到putty这个文件夹内。我们主要更改以下几个文件
[putty\windows\winhelp.h](## winhelp.h)
putty\putty.h
putty\config.c
putty\logging.c
UI上添加选项
winhelp.h
在 WINHELP_CTX_xxxxx 字段新增一条。这里我新增了一条
#define WINHELP_CTX_logging_timeheader "config-logtimeheader"
CTX 后面的 logging_timeheader 等下会用到。
putty.h
在 #define CONFIG_OPTIONS(X) \字段新增一条,这里我新增的是
X(BOOL, NONE, logtimeheader) \
位置大概是1389行。
config.c
位置大概 1667 行,仿造原有的代码,添加一个checkbox。这里我写成
ctrl_checkbox(s, "Include time header of line", 'j',HELPCTX(logging_timeheader),conf_checkbox_handler, I(CONF_logtimeheader));
上面的代码中,HELPCTX(logging_timeheader) 里面的 logging_timeheader 是在 putty\windows\winhelp.h 新增的条目。
I(CONF_logtimeheader)中的 logtimeheader是在 putty\putty.h 中新增的条目。
功能实现
这一步的主逻辑是在 putty\logging.c 这个文件内添加的。修改位置为大概 54 行。static void logwrite(LogContext *ctx, ptrlen data) 这个函数体内。修改后如下所示
static void logwrite(LogContext *ctx, ptrlen data){ /*
* In state L_CLOSED, we call logfopen, which will set the state
* to one of L_OPENING, L_OPEN or L_ERROR. Hence we process all of
* those three _after_ processing L_CLOSED.
*/
if (ctx-state == L_CLOSED)
logfopen(ctx); if (ctx-state == L_OPENING) {
bufchain_add(ctx-queue, data.ptr, data.len);
} else if (ctx-state == L_OPEN) {
assert(ctx-lgfp); if (fwrite(data.ptr, 1, data.len, ctx-lgfp) data.len) {
logfclose(ctx);
ctx-state = L_ERROR;
lp_eventlog(ctx-lp, "Disabled writing session log "
"due to error while writing");
} /************** 新增开始 **************/
if ((strcmp(data.ptr, "\n") == 0) (conf_get_bool(ctx-conf, CONF_logtimeheader))) { char buf[256]; struct tm tm;
tm = ltime();
strftime(buf, 24, "%Y.%m.%d %H:%M:%S ", tm);
fwrite(buf, 1, strlen(buf), ctx-lgfp);
} /*************** 新增结束 *************/
} /* else L_ERROR, so ignore the write */}
logwrite 这个函数是用来将putty窗口内显示的字符输出到log文件内的。
如果调用这个函数的地方是一行一行传进来的的话,修改的地方应该是在调用这个函数的地方。但是根据调用的情况来看,多数情况下是一个字符一个字符写的。
所以我的做法是检查到输出的字符是 \n 时,就输出一个时间,这样下一行再输出的内容就是跟在这个时间后面的。
最后实现的效果大概是下面这个样子
putty是什么,怎么用?
PuTTY是一个Telnet、SSH、rlogin、纯TCP以及串行接口连接软件。
1、putty是ssh的一种连接方式,一般是连接linux服务器用的,需要先建立连接后才能打开的。
2、输入要连接的主机ip。
3、输入端口号,默认是22 ,如果不知道目标主机端口可以用默认端口号测试一下连接。
4、设置完成后单击保存,将此次设置保存起来,下次就可以单击保存的ip自己连接,不用重新输入主机ip等信息了。一切操作完毕,单击连接,可能有几秒的停顿,稍等一下,会弹出登录界面输入用户名密码登录到目标主机。
putty源代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于putty源码解析、putty源代码的信息别忘了在本站进行查找喔。
版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;
相关推荐
- 05-05魔域脚本源代码(魔域互通版脚本)[20240505更新]
- 05-05androidoa开源代码(android源码网)[20240505更新]
- 05-05学校宿舍管理系统源代码(c++宿舍管理系统源代码)[20240505更新]
- 05-05miui开源代码(miui 源码)[20240505更新]
- 05-05html5制作动漫网站源代码(html动漫网页设计作品及代码)[20240505更新]
- 05-04融资源代码(融资代码是什么)[20240504更新]
- 05-04淘宝代码与网页代码不一样吗(淘宝网页源代码怎么看)[20240504更新]
- 05-04c语言连连看开源代码(python连连看源代码)[20240504更新]
- 05-04七夕html代码(七夕网页源码)[20240504更新]
- 05-04java简易计算器源代码(简易计算器编程java)[20240504更新]
取消回复欢迎 你 发表评论:
- 标签列表
- 最近发表
- 友情链接