版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PuTTY作者:2006年11:putty-tutorial[0x40]chaifeng[0x2E] PuTTY的版本到了0.6;修改了一下SSH隧道;添加了SSH反向隧道;添加了用SSH做补充了几个。刚刚在lifehacker看到Docs的几个小技巧,这篇文章终于 了个QConBeijing2009的大会现场回来,祝贺这次QCon大会的成功召开ThisislicensedunderaCreativeCommonsCreativeCommonsDeed2.5CreativeCommonsAttribution署名.您必须按照作者或者人指定的方式对作品进行署名这是一份普通人可以理解的法律文本(协议全文)的概要。 PuTTY中文在PuTTY里面怎样选中,和粘贴设置服务X11Windows上使用Linux象特洛伊木马一样建立一条SSH反向隧把PuTTY作为一个安全 设置PuTTY的默认设备份PuTTY删除PuTTYPuTTYgen来生成密钥,以后可以不PuTTYgen创建密SSHPSCP再来看看SFTP客户用Plink更方便快捷的执行主机上—— 我的这些文字是从这几年来的PuTTY使用经验中慢慢得来的,也不仅仅是介PuTTY,还包括了一些相关的软件,比如:优秀的FTP工具FileZilla、功能强大的SFTP客户端WinSCP。SSH主PuTTY常用配置的说o、粘PuTTY的设PuTTY的X11转PuTTY建立SSH隧PuTTYSSH隧道,像个特洛伊木马一样突把PuTTY作为一个安全的服务避免MSN等聊天工具PSCP、PSFTP安全的传输文SFTPPuTTYgen生成密钥,登录SSHPlinkSSH主机上的程除了上面的这些,还夹杂了一些PuTTY使用上的技巧、服务器配置的一些安全建议。说起来这是一些有如果你已经知道SSH、net、Rlogin这是什么,就跳过这一部分,看下面的吧PuTTY的:,截止到2006年11月,0.5820076月,发布的最高稳定版本是0.6PuTTY(net和SSH客户端PSCP(SCP客户端,命令行下通过SSHUnix/Linuxscp命令PSFTP(SFTP令行客户端,类似于FTP的文件传输,只不过使用的是SSH的22端口,而非FTP的21端口,类似于Unix/Linux下的sftp命令)PuTTY(仅仅是一个net客户端Pageant(PuTTY、PSCP、Plink的SSH认证,用这个可以不用每次都输令了PuTTYgen(用来生成RSA和DSA密钥的工具PuTTYPuTTY的强大功能PuTTY作为一个组件也存在于很多的软件中FileZilla、在后面的文字中,如非特别说明,默认的登录的SSH。毕竟PuTTY主要就SSH主机,net、RLogin没法体现PuTTY的强大功能PuTTY需要安装么?需要么?需要么?真的需要么?不需要。PuTTY是一个准绿色软件,说它绿色是因为直接就能使用,完全没有任何的安装程序。准绿色是指PuTTY的所有配置都保存到了表,如果不记得备份表中的相关内容,下次重装机器所有配置就没了,而且配置也不方便用闪存盘随身携带。但是PuTTY的配置删除还是蛮方便的,运行时指定个参数-cleanup就可以清除PuTTY的所有配置信息。运行PuTTY就可以看到下面这个界最后点下面的Open按钮,输入正确的用户名和口令,就可以登录服务这是要告诉你登录的主钥,点Yes就保存起来,以后就不会再弹出这个窗口,然后就正常登录No不保存,下次还是要提示你,然后也可以正常登录。如果一台主机我们只是临时登录一下,当然就是点No了。Cancel就是取消,也就是取消了这次登录。前两个情形很常见,一般Yes就行了。后面这个嘛……唔……唔……No/Cancel,再去询问相关的主PuTTY的默认字体和字符集并不适合中文显示窗口标题上点击右键Change在打开的配置窗口左边选Appearance,在右边Fontsettings里面Change按钮,选择好中文字选择配置窗口左边的Translation,在右边Receiveddataassumedtobeinwhichcharacterset下拉列表中选择最后一个“Usefontencoding”,最后点下面的Apply按钮就生效了。echo$LANG右边的Receiveddataassumedtobeinwhichcharacterset下拉列表中选择“UTF-8”先看看系统的字符集,如果是UTF-8的,那就简单了,选择好中文字体,然后编码选UTF-8就行了。那就选择最后一个“Usefontencoding”,绝大部分情况下这样就没啥问题了,反正我是没碰到有什么例外现在的Linux如果默认语言选择为中文,默认的编码就是UTF-8了。以前安装RedhatAS3时,语言选择为中文,默认的编码是.gb2312,.gb18030,好像AS3update6开始,包括现在AS4、AS5,中文的默认编码都成了.utf8。至Debian、Ubuntu等等这些上面,好像一直都是UTF-8。至UTF-8呢,还是用GB2312、GBK或者GB18030呢?我个人还是倾向于UTF-8。毕竟我们使用的大多数软件都是国外的,处理中文编码多多少少有些问题,PuTTY自然也不例外。下面的这个图上,我把终端编码修改为.utf8,然后也按照前面的所说的方法PuTTY的字符集修改为UTF-8。然后在终端中输入汉字“”,按左方向键,可以看到汉字显示很正常。我重新把终端的编码修改为.gb2312,同样的,把PuTTY的字符集修改为最后一个“Use至于用哪个编码,主要还是看的决定了,我们的就喜欢GBK,连GB18030都不行。以前在用Debian的时候,好像默认都不支GBK编码。这几年公司的开发在汉字编码问题上出过几次麻烦,还不就是在ISO8859-1,GB2312/GBK/GB18030和UTF-8上折腾来折腾去。给大家看一张emacs的截图,看看上面的这么多语言的文字共同显示,这个会是用UTF-8也不是为了要在一个屏幕上显示好几种不认识的文字,也不一定非要是跟国际接轨弄个外包给老外开发程序做个其他语言的界面让老外用,起码不要在那么多编码里折腾了,顶多两个ISO8859-1和在PuTTY里面怎样选中,和粘贴在PuTTY的窗口里面、粘贴可不能用Windows里的这些Ctrl+C,Ctrl+Ins,Ctrl+V这些快捷键Ctrl+C在控制台上可是终止当前令执行PuTTY的选择、、粘贴这些操作都是通过鼠标来完成的。在Window-〉Selection这里可以设置和粘贴的方式。默认Actionofmousebuttons(鼠标按键的功能)的选项Compromise,这种方式下选中有两种方Actionofmousebuttons的第一个选项Windows(Windows方式的),鼠标中键的操作跟前面提到的第三个xterm(xterm方式),这个跟默认Compromise方式相反的,中键和右键的操作调换下面那Shiftoverridesapplication'suseofmouseShift键有关的。有RogueLike的程序,比如mc、links、Lynx、VIM等等,都支持鼠标操作,想在用鼠标在上面选择或粘贴就。这个选项默看下面的这个,用Links打开了的首页,用鼠标去选中顶部中间的,我们会发现,弹出了保存的框。Shift键重新操作一次,哈哈,这次选Controluseofmouse里面Defaultselectionmode(默认的选择模式)Normal,就一个新的名称,点击Save按钮保存么办呢?我见过很多人,包括我们公司负责专职的同事,都是直接点击窗口上的关闭按钮,完全没有理会弹出警告窗口,直接点击了Yes。这样做是不对的,首先这不是正确的注销方式,应该exit来正常注销;其次直接关闭窗口后,你的登录其实还在服务器上,如果一连多次的这样强制关闭窗口,用命wwho命令查看时,可以如果上述的理由是每次要输exit然后回车,比较麻烦。你可以用快捷Ctrl+d来注销登录,一般情况面说道保存会话时,大家或许也注意到,下Closewindowonexit有三个选项Always(不管怎样,窗口总是要关闭的Never(无论是否有程序还在运行,都不要关闭窗口Onlyonclearexit(这个是默认选中的,只有在本次登录中运行的程序都正常终止或者在运有的程序在执行时,虽然在命令最后面加上“&”就能放到运行。但是正常注销登录后,窗口没有被自动关闭,还能看到程序的输出,这时强制关闭窗口还是可以的。为了避免这种情形,可以使用nohup命用法嘛就是nohup令参数,这样就可以了还是在标题栏上点右键选择Changesettings...,在配置窗口的左边选择Window,修改右边的Linesof 在上面Setthesizeofthewindow里设置的是窗口显示的行数和列数,默认是24行、80列,根据自Whenwindowisresized这个选项配置的是,当窗口大小发生改变时该采取什么动作Changethenumberofrowsandcolumns(这个是默认的,改变窗口大小时,自动修改行数和列Changethesizeofthefont(这个是根据窗口的大小来修改字体的大小,窗口最大化的时候,字Changefontsizeonlywhenised(只有在窗口最大化的时候才改变字体大小Unix/Linux主机上,默认选项已经不存在任何问题了。如果Solaris8这样Unix上最好用第2或第4个选项。顺便说一PuTTY中的前后翻页Linux终端一样Shift+PageUp/PageDown来上下翻页,而Ctrl+PageUp/PageDown则是一行一行的。前面把如何PuTTY登录一台主机到注销的过程聊了一遍,但是在新建会话时还是有些东西需要再啰嗦保持连接,不要自动断Connection里面有Secondsbetweenkeepaliaves,这里就是每间隔指定的秒数,就给服务器发送一个空的数据包,来保持连接。以免登录的主机那边在长时间没接到数据后,会自动断开SSH的连接。默认输入0是禁用保持连接,在这里我习惯的设置了10。自动登录用Connection-〉Data里面有Auto-loginusername,可以指定默认的登录用户。如果每次登录主机都自动设置环境变还是前面的那个界面,下面有EnvironmentvariablesVariable输入环境变量的名称,Value里设Serverrefusedtosetenvironment设置服务8080,Socks5常用端口有1080)ExcludeHosts/IPs这里是填写排除的主机地址和IP,有些地址不需要,就在这里填写。有些需要认证,用户名填写到Username,则填写到下面的Password。自动执行一个命在Connection-〉SSH里有个Remotecommand,在这里面填写上服务器上的某个命令,比如:df,因为命令执行完毕的同时,本次SSH登录连接也随之关闭你可以把自动执行令修改成sleep10,然后重新登录,再看看效果 SSH连接自动断开冰雪聪明的你一定会想到,如果每次登录主机,都是要重tomcat,那这里就可以填写上这样 (上面令是一行的哦置了一下),然后进入tomcat的bin,用shutdown.sh停止tomcat,然后再startup.sh启动tomcat,最后tail命令持tomcat的日志输出,不想看了,就直接Ctrl+C就可以终止SSH的会不过前面提到令sleep10,只是建立了SSH连接,然后10秒钟后自动断开。是不是觉得很无聊没定时间内(在这里就是10秒钟)隧道没有被使用,就自动关闭SSH连接和隧道。如果选中Don'tstartasorcommandatall就禁用了自动执行命令这一个特性,这个主要是配合Tunnels(隧道)来使用的。因为有时候,我们只需要利用隧道建立一个,而并不需要登录上去执行嗯,还有个问题哦,如果一次要执行令很多,该怎么办呢?嗯,给PuTTY用-m选项指定一个包含主机上执行令的文本文件。不过以后还会说到Plink,就是专门做这个用的,慢慢来慢慢来。数据自动压缩传输,变相的提高传输速还是前面的那个界面,Protocoloptions里面有Enablecompression,这个选项的意思就是传输时压缩数据,在连接速度不变的情况下,变相的提高了传输速率。SSH服务器都会允许这个选项的,所以无需口令登Connection-〉SSH-〉Auth这里面有两个需要了解的,以后在讲PuTTYGENPagent时会详细介一个是Allowagentforwarding,作用是允许私钥的转发的这两个可以让你用SSH登录不用输入主机口令,但是私钥的口令还是需要输入的,如果使用了私钥主机上以后,用SSH登录另外一个同样配置了相同的私钥认证的主机,也可以不用再次输令。如果主码没有在另外一个地方记录下来的话,这个很快会忘记的,好处嘛,可以设置的很长很XD。X11转发能够让你在Windows上使用Linux的程这里很简单,选EnableX11forwarding后登录主机,记得在我们本地运行X服务端程序(比如:免费好用的Xming)。然后在控制台直接输X环境下运行的程序,比如:xlogo,我们就可以看到LinuxGUI界面的程序在Windows桌面上打开了。运行个复杂的,比如gnome-session,这个GNOME的启动命令,如果想打KDE这样跟在本地使用XWindow几乎是一样的了,而且还是运行在Windows的桌面上呢,骗骗小mm还是不错的。或许你会问这样用跟vnc那还不一样了?答案是,不一样。如果网络环境不好,还是用vncGNOME桌面,怎么关闭呢?点菜单的注销吧。如果你点了关机,这可关不了你的Windows,关的是主机。SSHTunnels(SSH隧道),突破简单的说一下,SSH协议能SSH加密链路来转发任意的网络连接,从而避免了网络中的明文传输,也就无法用一些Sniffer工具到我们的隐秘信息了。先说一下大致的使用过程,登录到主机上以后,就可以建立SSH隧道,这时在你的机器本地会开放一个端口,通过本地的这个端口,就相当于在主机上去直接。很像服务器吧,如果隧道另一端的端口是动态的,SSH隧道就是一个了,SSH隧道的意思大致就是这个。通过SSH隧道,我们可说了这么多,实际演练演练就知道了。在PuTTYConnection-〉SSH-〉Tunnels这里就是配SSH隧中要说明的一点是SSH隧道是有方向的,这个方向是由下面的单选按钮Local/Remote/Dynamic来决定的。如果下面的单选按钮选中的是Local,那么Destination这里填写的目标是相对于主机而言,而非你的机器。这样的隧道可以称之为正向隧道,隧道的是在你的本地,出口在主机那一端。如果单选按钮选中的是Remote,那么目标地址就是相对与你的机器而言,而非主机。这样的隧道称之为反向隧道,隧道的是主机那一端,隧道的出口则是你的本地机器。这与Local选项是相反的。而最后一个Dynamic则不用指明Destination目标地址,也就是说目标地址是动态的了,连入隧道时可以随意指定目标地址,而不像Local/Remote指明的固定目标地址,所以这样的隧道就成了变相的加密socks5开始演练,我们现在建立一条到主机guantou上端口7001的隧道,在guantou上可以nc-l-p7001localhost这条命令建立一个本地到端口7001的连接,这样确保无法从其他机器这台主机的端口,只能在guantou这台主机上用netlocalhost7001来连接。现在我的机器IP是5,如果直接用命令netguantou7001的话,那么在主机guantou上会看[taylor@guantoutaylor]$nc-l-p7001在这个配置面板上Sourceport8080,也就是我们要通过本地的8080端口SSH隧道,Destination这里填上:7001,就表示被登录的主机guantou访问该主机本地的:7001这个端口。正常登录到主机guantou以后,SSH隧道就建立好了。在我的机器5上输入命令netlocalhost8080,输入一些东西,就会在guantou上看到有响应。在这里我用的是nc,看起来方便一点,net也是一样的。这就是正向SSH隧道的一个例子,大家实地操作几次也就会明白了。最上面有个复选框是“Localportsacceptconnectionsfromotherhosts”,这个选项的作用是允许其他主机连接你机器上的隧道,默认SSH下面要说的就是选中单选按钮Remote后建立的反向SSH隧道,这样的隧道做什么用呢?一般都是允许从内往外,而不允许从外到内的,除非在上做好nat或端口转发。现在,你在防火墙的内部,但是又想让外面的人到你的机器上。厚厚的城门紧闭,外面的人进不来,只有你能从里面打开这扇防护严密的大门,就像一个特洛伊木马一样,你主动连接出去建立一个SSH隧道,然后外面的人就可以通过这个反向的SSH隧道轻松突破到的你的本地机器。看下面这个图:在Sourceport这里填写8080,也就是隧道的是端口8080,Destination这里填写localhost:7001,填写完毕别忘记点Add按钮,在上面就可以看到显示的是R8080localhost:7001。成功登录主机guantou后,反向隧道就建立好了。在主机guantou上输入命令netlocalhost8080就可以连接到你的本地端口7001。哈哈,这样一个特洛伊木马般的反向SSH隧道就建立完毕了。我们在主机上连接8080端口,其实就连接到了我们本地7001端口了。上面共有两个复选框,我们提到了一个,已经说了,选中以后就允许其他机器连接隧道了。那第二个“Remoteportsdothesame(SSH-2only)”,则是给反向隧道使用的,也就是说主机的那个反响隧道也做同样的事情,也就是允许其他机器连接主机上的反向隧道,不过一般情况下这个选项都不会起作用的^_^。把PuTTY作为一个安全的服务器来使这个简Sourceport那里填1080,Destination这里空下不填,选中下面Dynamic,最后别忘了点Add按钮。登录主机后,一个服务器就建立好了,这个服务器的地址就是localhost:1080,还是加密的理,可以轻松绕过万恶的去拥抱Wikipedia,波~~~,来一口。PuTTY的默认设选中一个先前配置好的会Load按钮然后SavedSessions会话名HostName如果SavedSessions这里和上面HostName清空,点Save按钮,就可以把设置保存为默认设置PuTTY的设用PuTTY最不爽的就是,它把所有的设置都保存到表了,本来这不是什么问题。但是难免会重装一下机器,用下面令可以备份PuTTY的所有设置PuTTY的设如果只是在其他机器上临时用了一个PuTTY,用完以后想删除PuTTY的配置,就在控制台里输入如下的PuTTYgen是密钥,用来生成一对公钥和私钥供PuTTY、PSCP、Plink、Pagent来使用。直接运行PuTTYgen可以看到如下的界面。Generate按钮就开始生成一个公钥和私钥对,生成完毕后,点下面的Saveprivatekey就可以把私钥保存起来,扩展名是.ppk的文件。Load按钮可以把先前保存的私钥重新打开,然后做些修改,比如修改注释和私钥口令,或者PuTTY格式的私钥转换为OpenSSH格式的。开始用PuTTYgen单击Generate按钮,然后你会看到进度条上面有个提示“Pleasegeneratesomeradomnessbymoving最上面那个大大的只读文本框里面是公钥,用来保存到OpenSSH的authorized_keys文件中,这个文件中的每一行都是一个公钥。默认情况下,这个文件位于Linux用户 的.ssh/ 但是创建的文件、和用户主($HOME$HOME/.ssh,$HOME/.ssh/authorized_keys)的权限有个法登入系统的。这是SSH服务器的一个安全要求,因为如果别的帐户可以修改你的authorized_keys的话,的增加一个公钥,那对方不用你的帐户口令也能以你的帐户登入系统了。对于一些特殊要求,你可以在SSH服务器的配置文件sshd_config中用指令StrictModes来取消这个限制。在sshd_config的帮助手册中可以看Specifieswhethersshdshouldcheckfilemodesandownershipoftheuser’sfilesandhomedirectorybeforeacceptinglogin.Thisisnormallydesirablebecausenovicessometimesaccidentallyleavetheirdirectoryorfilesworld-writable.Thedefaultis小技巧:每次修改authorized_keys这个文件时,你可以用如下令来修改,确保所有的文件属性和权mkdir-p$HOME/.ssh&&touch $HOM $HOM以最起码要输入自己的名字,用默认的注释很容易和其他人的密钥的。如果担心自己的忘记了, ]后面的w.z.就是我的提示,能猜出来么?呵eyhre和Cnimhe不输令直保私会到个示为安见是输令,不何得这私最后单Saveprivatekey来保存私钥吧,保存到自己认为安全的地方,比如存放到私人USB闪存盘上。需要登录时USB闪存盘。登录完毕后就可以USB闪存盘取下来,哈哈,这样子就比较安全大家也注意到了,还有个Savepublickey按钮,这个是保SSH2格式的SSH服务器要求PuTTYgen把私钥Load出来,然后再保存也可以。用密钥登录服务器的流如果没有公钥/PuTTYgen创建一个,已经有了就可以忽略这一步。一个公钥/密钥对可以用在不同的服务器上,所以也不需要重复创建,关键要有足够强健的和安全的存放。authorized_keys文mkdir-p$HOME/.ssh&&touch $HOM把这个文本框里的公钥粘贴到vim中去,需要说明几点:这个文本框里的内容是一行的,粘贴到vim中时,别忘了按字母o这个键,否则的话,粘贴进去后,开ssh-rsash-rsa,ivim中不就是插入么?原因是我很懒,按字母o,我可以节省一次按回车键。虽然按大写O也行,那我不是还得再按一下Shift键么?PuTTY中默认的粘贴可是按鼠标右键哦,然后按一下ESC键,然后输入:wq保存:wqShift键,那我们就干脆直接两下大写的字母Z,也就是ZZ。怎么样?vim也一样保存退出了吧。这次又节省了一次按键和两4步里的那个公钥忘记保存了,就用PuTTYgenLoad上去,然后重新一下公钥吧。PuTTY的配Connection->SSH->AuthSession,以后$HOME/.ssh/authorized_keys文件中,有我们的公钥,我们就随时用匹配的私钥都可以登录了。配合后面提到的Pagent,我们连输入密钥口令这一步也可以忽略过去。Ctrl+d注销哦以后这些步骤就不需要再重复了,只需要打开PuTTY后,双击一下保存的会话名称,输入密钥口令Pagent加载密钥,每次开机后只需要输入一次密钥双击一Pagent的图标,出来这样一个界面。很简洁的,AddKey是添加私钥,RemoveKey是把选中的私钥从Pagent中卸载了。好,现在单击AddKey按钮添加私钥,我把这个演示用的私钥保存C:然后会出现输入密钥口令的框,输入正确的密钥后,单击这时Pagent的窗口中就能看到我们的私钥已经装载上去了现在打开PuTTY,选择先前保存的Session,双击一下。只要自动登录用户名设置上,主机上改帐户的authorized_keys文件里也有匹配的公钥。哈哈,发现没有?完全不需要口令,我们已经登录到系统了。在Pagent的图标上点右键,也可以快捷的选择已经保存的会话。建议大Pagent放到启动组里面,这样每次一开机,Pagent自动运行,然后我们只需要把私钥装载一下,然后我们就可以一直享受自动登录系统的乐趣了。再配合上以后会讲到Plink、PSCP这些,我们可SSHPuTTY提供了两个文件传输工PSCP(PuTTYSecureCopyPSFTP(PuTTYSFTPPSCPSSH连接,在两台机器之间安全的传输文件,可以用于任SSH(SSHv1、SSHv2)PSFTP则是SSH-2中新增的特性,使用的是新SFTP协议,使用上与传FTP类似。事实PSCP如果发SFTP可用,PSCP就会使SFTP协议来传输文件,否则还SCP协议。PSFTPPSCP相比,PSFTP的优点是可以与服务器进行交互,遍历服务器上的文件系统,在一个会话中上传或多个文件。PSCP只能一次传输一个文件,传输完毕后立刻终止PSCP的使在控制台直接执行pscp可以看到帮PuTTYSecureCopyclientRelease0.58Usage:pscp[options][user@]host:sourcepscp[options]source[source...][user@]host:targetpscp[options]-ls[user@]host:filespec printversioninformationand printPGPkeyfingerprintsand quiet,don'tshow copydirectories showverbose-loadsessnameLoadsettingsfromsaved-Pportconnecttospecified-luserconnectwithspecified-pwpasswloginwithspecified-1- forceuseofparticularSSHprotocol-4- forceuseofIPv4or enable-i privatekeyfilefor disableallinteractive forceuseofSFTP forceuseofSCP可以看出PSCP的使用是很简单的,把常用的几个选项说-Pport指定服务器SSHP-P22,如果主机SSH端口就是22,就不用指定了-luser指定以哪个用户的登录主机,如果没有指定,则PSCP会在PuTTY保存的同名Session中获得默认的用户名称。用户名称也可以和主机名称写在一起,用@分割开,比如:-pwpasswd指定登录时所用的口令为-ikeyfile最后面指定的主机名也可以是PuTTY中保存的Session名称。比如我们在PuTTY中保存了一foobarserver的会话,而我们所在的网络又的确没有名为foobarserver的主机名称。而foobarserver会话中保存的主机名称demo-servertaylor。pscpc:autoexec.bat就把本地的c:autoexec.bat到了主机demo-server上的用户taylor所在的 下backup 中(这个路径可能是所以PSCP大致用法的例子就是把本地的C:pathfoo.txt到主机00的 pscpc:pathfoo.txt00:/t把本地的C:pathfoo.txt到主机00的/tmp 下,但是以主机上的用户taylor的权pscpc:pathfoo.txt把本地的C:pathfoo.txt传送到主机00的 下,但是主机的SSH端口是把本地的C:pathfoo.txt到主机00的用户taylor的 pscpc:pathfoo.txt把主机00上的用户taylor主 下的所有*.tgz文件拷贝到本地的c:backup 果SSH版本是SSHv1,那这个命令就会出错。再来看看在控制台执行命psftph,可以得psftp的帮PuTTYSecureFileTransfer(SFTP)clientRelease0.58Usage:psftp[options] printversioninformationand printPGPkeyfingerprintsand-b usespecified don'tstopbatchfileprocessingif showverbose-loadsessnameLoadsettingsfromsaved-luserconnectwithspecified-Pportconnecttospecified-pwpasswloginwithspecified-1- forceuseofparticularSSHprotocol-4- forceuseofIPv4or enable-i privatekeyfilefor disableallinteractivePSCP大同小异,虽然-load选项,其实这个没啥用,后面用主机名的时候,与PSCP一样直PSFTP登录到服务器上以后,操作FTP差不多,这里简单的说一openopentaylor@demo-server就是以用户taylor的,登陆到主机demo-server上,SSH端口是demo-server,这里demo-server可以是PuTTY中已经保存的会话名称,也可close关闭SFTP连这个没啥说的,closeSFTP连quit结束本次的SFTP会PSFTP这个程help[command]帮cddirectory]改变当pwd察看当lcddirectory]改变本lpwd察看本地当get[-r]<filename|directory>从服务器一个文件/ put[-r]<filename|directory>[dest]把文件 -r可以递归上传整mget[-r]<filename|directory>从服务器一批文件 ,可以用通配符,-r的含义与mget[-r]<filename|directory>[dest]把一批文件/ 上传到服务器,可以用通配符,-r的含义与put一样reget[-r]<filename|directory>从服务器续传一个文件/ 的含义与get一样reput[-r]<filename|directory>[dest]把一批文件/ 配符,-r的含义与put一样dirdirectory]lsdir一od[file|directory]改变文件的权限,与Unix的od命令类delfilename>del只能删除文rmdel一<>rmdir<directory>删除一个 mv<source-file|source-directory><dest-file|dest-directory>改名/移动。如果源和目的都是文 !其他可选的SFTPFileZilla::用Plink更方便快捷的执行主机上Plink是PuTTY令行连接工具,主要用于自动化工作的处理。直接在控制台执行plink,可以看到Plink的帮助PuTTYLink:command-lineconnectionutilityRelease0.58Usage:plink[options][user@]host("host"canalsobeaPuTTYsavedsessionname) printversioninformationand printPGPkeyfingerprintsand showverbose-loadsessnameLoadsettingsfromsaved-ssh-net-rlogin-forceuseofaparticular-Pportconnecttospecified-luserconnectwithspecified disableallinteractiveThefollowingoptionsonlyapplytoSSH-pwpasswloginwithspecifiedDynamicSOCKS-basedportForwardlocalporttoremoteForwardremoteporttolocal-X- enable/disableX11 enable/disableagent-t- enable/disablepty-1- forceuseofparticularprotocol-4- forceuseofIPv4or enable-i privatekeyfilefor readremotecommand(s)from remotecommandisanSSHsubsystem(SSH-2 don'tstart -Pport指定服务器SSHP-P22,如果主机SSH端口就是22,就不用指定了-luser指定以哪个用户的登录主机,如果没有指定,则PSCP会在PuTTY保存的同名Session中获得默认的用户名称。用户名称也可以和主机名称写在一起,用@分割开,比如:-pwpasswd指定登录时所用的口令为-ikeyfile还是用一些实际的例子来说明一Plink还记得前面说到PuTTY的自动执行命令那个配置么?在说到那个配置的时候,我们演示了一个简单的Tomcat重新启动令,这个命令是要写在PuTTY的Remotecommand里面去。现在我们用Plink来假设连接的00,SSH的端口3022 $CATALINA_HOME/bin;./shutdown.sh;./startup.sh;tail-f$CATALINA_HOM如果PuTTY中保存了一个名为00的会话,注意,这个会话的名称与主IP一样,在会话中已经正确保存了端口3022,指定了默认的用户是taylor,现在这个命令就可以简化为: $CATALINA_HOME/bin;./shutdown.sh;./startup.sh;tail-f$CATALINA_HOMdate命令查看一下主机上的时间,并且格式化输出date:toomanynon-optionarguments:%TTry`date--help'formoreinformation.可是在服务器上直接执行命令date"+%F%T",的确是正确无误的,哪里出了问题呢?这是因比如c:tmp文件夹里建立三个文件夹,名称分别为:"foo"、"bar"、"foobar"。然后foo这个文件夹然后在控制台下进入c:tmp这个文件夹,执行如下dirfoo结果是列出“foobar”这个文件夹里的内容,还是分别列出“foo”和“bar”文件夹里的东西呢?正确答案是后要想正确列出“foobar”文件夹里的东西,就需要引号把"foobar"引起C:tmp>dirfooVolumeindriveCisSystemVolumeSerialNumberis9C51-A51CDirectoryof2006-11-22 2006-11-22 2006-11-16 01File(s) 0bytesDirectoryofC:tmpbar2006-11-22.2006-11-222006-11-16 01 02 C:tmp>dir"fooVolumeindriveCisSystemVolumeSerialNumberis9C51-A51CDirectoryofC:tmpfoo2006-11-22 2006-11-22 2006-11-16 0foo-1 02 说到这里,就会明白上面的那个命令plink00date"+%F%T"其实在主机上执行的真实命令是dateFT,而不是命令行中指定dateFT"。不过还好,Windows的控制台可不认得单引号,所c:>plink00date'+%F%T'2006-11-2209:39:57我经常需要登录到服务器上把ADSL重新拨号,可以把下面令写到一个文本文件中,比如保存到echo"stoecho"done."plink- mand.txt我经常要查Tomcat的运行日 连接着另外一个网段,有台内网IP为1的Solaris8主机只能用net登录,为了防止被,我们可以用Plink建立一个隧道,隧道开放120秒钟,如果隧道没有被使用,就自动断开连接,然后我们在本地就可以用命令netlocalhost2623的安全登录那台Solaris8plink-L 上正在运行着tor,默认的地址是:9050,用Plink建立一个隧道,然后浏览器上配置服务器为,端口是9050,这样就能够安全的使用tor了, PSCP我们还可以完成文件的每天备plinktaylor@00tarjcf$(date'+ s.%F.tar.bz2')~/ pscptaylor@00:$(date'+ s.%F.tar.bz2')c:backup 如果把这些常用的操作写成批处理Tomcat,或者马上察Tomcat日志,再或者只是要ADLS重新拨号以下,只需要用鼠标一双击这个批处理文件,稍等一下就自动完成了。不比你打开PuTTY,登录到服务器上,然后再一个一个的执行命令,最后还得注销来的方便快捷么?再懒一每天忙于这些繁杂重复令中了。如果我说的服务器也开放了SSH,但是只有特定的IP可以连接上去,不信么?(:下面的都修改,我以的名义发誓,绝对没有PS)Tips(小技巧安全、方便的使用VNC,连接VNC不需们多数情况下用Windows登录Linux桌面的方法不外乎X11forwarding和VNC,有关X11转发的内容参照前面的部分,还X11VNC哪个方便,这里就不再啰嗦说这些了,自己试一试就在机器上启动vnc服务的方法很简单,直接使用命令vncserver了。如果是第一次使用这个命令还会提示输入一个口令。注意了,这个口令是用来连接VNC服务端用的,不是登录口令,着两个口令可不一样。如果vnc的连接口令,使用命vncpasswd就可以搞定,用法passwd一样。哎哎,等等。标题上不是写的“连接VNC不需要”么?为什么这里还是需要连接?不要着急,太简单了,容易被掉。太复杂了,人脑毕竟不是电脑,记不住。但是呢,为了安全,密码还是要设置的长一点,我们可以使用一些其他工具帮助我们管理这些又臭又长的,比如KeePass。现在要说的是,我们可以把VNC的连接设置的好长好复杂,而且我们不用记,连接VNC的时候还一、在本地机器上/listenvncviewer,这个RealVNC、TightVNC、UltraVNC的客户端都一样。也就是要把VNC客户端启动在模式下,我们要让VNC服务器主动连接我们,这样我们就不需要VNC的连接口令了。vncviewer二、创建一PuTTY的反向隧道,源端5500localhost:5500,具体操作看前面的部分,别忘记点“Add”按钮哦。这个5500端口就是vncviewer的默认端口。三、在服务器上用命令vncserver启动VNC服务,如果前面已经启动VNC服务了,就忽略这一步。vncconfig-display:1-connect说一下两个个关键参数,一个display后面的:1,这是连接到第vnc实例上。另一connect参数后面的localhost,既然我们是在机器上输入的这个命令,那很显然,连接的就是机器。别忘了,我们在此之前设置了反向的SSH隧道,连接机器的本地5500端口,其实连接的就是我们自己机器的5500端口。哈,然后你就会发现什么也不用输入,就直接连接上的VNC服务了。不过呢,这四步操作确实第一步操作我们Windows的启动菜单你里放一vncviewer的快捷方式,别忘/listen参数。第二步操作可以直接保存到PuTTY的会话里面,参面的内容。VNC服务就一直能用第四步的这个命令,我们可以PuTTYConnection->SSH的选项里“Remotecommand”里填写上“vncconfigdisplay1connectlocalost”,然后同样也是保存PuTTY的会话里。以后只要双击一下那个PuTTY的会话,我们的VNC窗口就会自动打开。plink.exe-R5500:localhost:5500guantou"vncconfig-display:1-connect命令参数中的那个“guantou”是PuTTY保存的会话名,也可以是机器主机名,把这个命令做成一个快捷方式,双击直接打开VNC。我在PuTTY的,可是执行PuTTY、Pagent、PuTTYgen时总是出错,而命令行执行的这这种情形我也碰到过,一个解决的办法就是去版,或许你碰巧的是旧版本。另外一个解决办法就是,创建三个扩展名为.manifest的文本文件,然后把这三个文件到PuTTY的中,文件内<!--ThisispresentpurelytomakeVisu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版应急通讯基站搭棚施工合同参考2篇
- 二零二五版交通事故车辆维修及赔偿协议2篇
- 二零二五年度食品饮料品牌授权销售合同范本2篇
- 二零二五年度储罐安装与环保验收合同4篇
- 2025年度个人理财产品投资及收益分配合同4篇
- 2025年度生物质能发电项目承包清工劳务合同模板4篇
- 二零二五年度玻璃工艺品设计与生产合作协议
- 二零二五年度转租协议甲乙丙三方权益保障合同
- 2025年度跨境电商股权退出撤资协议书
- 二零二五年度餐厅租赁合同附餐饮行业趋势研究合作
- 2025年春新沪科版物理八年级下册全册教学课件
- 2025届高考语文复习:散文的结构与行文思路 课件
- 电网调度基本知识课件
- 拉萨市2025届高三第一次联考(一模)语文试卷(含答案解析)
- 《保密法》培训课件
- 回收二手机免责协议书模板
- (正式版)JC∕T 60023-2024 石膏条板应用技术规程
- (权变)领导行为理论
- 2024届上海市浦东新区高三二模英语卷
- 2024年智慧工地相关知识考试试题及答案
- GB/T 8005.2-2011铝及铝合金术语第2部分:化学分析
评论
0/150
提交评论