ssh PuTTY相关的一些总结

好像PuTTY的官网一直打不开,只有在别外一处网页看到有据说最新的版本。

http://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

确实更新的比较快,写这篇文章时是0.68版本,2017-02-21更新。下面的软件都从这个网页上转过来的。

MSI(Windows Installer)

32-bit:           putty-0.68-installer.msi.zip

64-bit:           putty-64bit-0.68-installer.msi.zip

上面的安装包里有以下几个可执行文件,也可以不安装上面的,单独下载以下文件,也可以运行的。

putty.exe (the SSH and Telnet client itself)

32-bit:          putty.exe.zip

64-bit:          putty64.exe.zip

pscp.exe (an SCP client, i.e. command-line secure file copy)

32-bit:          pscp.exe

64-bit:          pscp64.exe.zip

psftp.exe (an SFTP client, i.e. general file transfer sessions much like FTP)

32-bit:          psftp.exe.zip

64-bit:          psftp64.exe.zip

puttytel.exe (a Telnet-only client)

32-bit:          puttytel.exe.zip

64-bit:          puttytel64.exe.zip

plink.exe (a command-line interface to the PuTTY back ends)

32-bit:          plink.exe.zip

64-bit:          plink64.exe.zip

pageant.exe (an SSH authentication agent for PuTTY, PSCP, PSFTP, and Plink)

32-bit:          pageant.exe.zip

64-bit:          pageant64.exe.zip

puttygen.exe (a RSA and DSA key generation utility)

32-bit:          puttygen.exe.zip

64-bit:          puttygen64.exe.zip

putty.zip (a .ZIP archive of all the above)

32-bit:          putty.zip

64-bit:          putty64.zip

Unix 源码

.tar.gz:           putty-0.68.tar.gz

Windows 源码

.zip                 putty-src.zip

git repository

Clone:            https://git.tartarus.org/simon/putty.git

gitweb:           master | 0.68 release tag

还有一些帮助文档就没加进来了,需要可以到原网页去查看,或上面putty.zip包里也有。

———————————————–分      界      线————————————————-

接着是关于Ubuntu里的ssh, 一直可以用ssh命令在linux主机之间登录,或用PuTTY在window里向linux登录。

以前一直是用密码的方式。现在把用密钥文件登录的方式记录一下。

情景一:2台linux主机之间SSH, A主机—>SSH–>B主机。

在A主机上运行:

按提示输入要保存的文件名, 就会生成2个文件, 一个私钥,一个公钥, 他们文件名前面一样(为你输入的文件名), 公钥后多一个.pub。

接着把公钥文件的内容写到B主机的~/authorized_keys文件中,(注意这个是一个文件,之前没搞懂,以为是个文件夹,直接把公钥文件发送到这个自已创建的文件夹下,一直没有办法调试成功):

这个命令还是要求输入一次密码的,因为把内容写到B主机还是需要一次登录。这个登录现在需要一个密码。完成后,这样就在B主机的/home/myname/.ssh/authorized_keys文件里记录了这次产生的公钥。

接下来就可以在A主机通过密钥(免密码)登录到B主机了:

情景二:A主机(windows)—>SSH–>B主机(linux)。

这时可以用上PuTTY了。根据密钥文件的生成是哪个主机产生的,有2种情况:

A主机(windows)主机产生密钥:这时需要用到puttygen.exe, 点Generate,鼠标在软件上乱动直到生成对就的公钥和私钥,点Save private key就可以保存一个私钥。公钥需要把下图抹黑的内容复制下来,保存成一个文件,然后想办法把内容添加到B主机(linux)的~/.ssh/authorized_keys文件中去,注意是添加,不要覆盖原有的内容,如果覆盖了原来之前的内容,那以前授权过免密码登录的帐号就不能再登录了。

然后在B主机运行命令:

过后就可以在A主机(windows)里运行putty.exe免密码登录了。具体是跟有密码登录一样,选中Session->Connection type:->SSH, 填好Host Name(or IP address),最好给个Saved Sessions名,保存一下,可供下次快速打开。

然后不是直接点Open,而是在左边栏中选中Connection->SSH-Auth, 在打开的右边的Private key file for authentication:中选中刚才保存的私钥,这时再按Open。

填写登录名,回车,就直接进去了,没有要求输入密码,完成。

 

B主机(linux)主机产生密钥:

在linux主机里,进入~/.ssh, 用ssh-keygen生成公钥私钥对,2个文件:

然后把生成的公钥(以.pub结尾)的内容添加到~/.ssh/authorized_keys文件里去。

把生成的私钥想办法复制到A主机(windows)上。因为putty.exe支持的私钥文件格式和openssh在linux下生成的私钥格式不相同,需要做一个格式转换才能用。这时还是用上puttygen.exe, 点Load把linx上复制过来的私钥文件加载进来,然后再Save private key,保存成putty支持的格式。

然后用这个新格式的私钥文件就可以在putty.exe上免密码登录了,具体参考上面A主机(windows)主机产生密钥后面段已经写了,不再重复。

———————————————–分      界      线————————————————-

以上是SSH登录,有时就想只把文件从A主机传到B主机, 传过去就好了,不想登录。

前提是按上面的过程把公钥私钥安装好了。

接下来,这时也有2种情况:

A主机(linux)–>file–>B主机(linux),

可用scp:

 

A主机(Windows)–>file–>B主机(linux)

可用pscp.exe, 用法是一样的,只是命令名从linux的scp变成了windows下的pscp. 这样pscp.exe是putty安装包里的一个软件,也可以单独下载运行不依赖于putty.exe. 上面有下载的。

注意pscp.exe 默认其实以sftp来传送文件的,如果遇到类似 Fatal: Received unexpected end-of-file from server这样的错误,可能是远程主机不支持sftp, 这时要用scp来传要加上-scp 参数:

错误就消除,文件才能传过去。参考:https://deveshsharma.info/2013/12/11/fatal-received-unexpected-end-of-file-from-server/

 

 

打赏