工具04:PuTTY的小伙伴PuTTYgen和Plink

PuTTY的好基友PuTTYgen是SSH的key的生成器,可以免密码登录系统。
PuTTY的另一个好基友Plink是PuTTY的命令行接口,可以执行远程命令。
本文介绍两个软件的使用。

下载

请到PuTTY下载页面下载这两个软件的最新版。

PuTTYgen

运行puttygen.exe,点击“Generate”按钮,然后用鼠标在下图红框位置不断画圈,直到进度条结束。

修改“Key Comment”。根据需求“Key passphrase”和“Confirm passphrase”。点击“Save private key”,保存到本地。

若没有“Key passphrase”,会有提示,确认即可。

将“Public key for pasting into OpenSSH authorized_key file”框中的所有文字复制到剪贴板。

登录的服务端,将此信息复制到$HOME/.ssh/authorized_keys文件内(若没有,则请创建相关文件夹和文件)。

注意,有些Linux发行版对于.ssh的权限要求是700authorized_keys文件的权限是600,若出现Server refused our key的提示,还需要密码登录,请执行如下命令。

1
2
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys

PuTTY的设置如下。

  • Connection->Data->Auto login username填写默认登录名。
  • Connection->SSH->Auth->Private Key file for authentication选择ppk路径
  • 将Session保存为“Default Settings”,以后打开PuTTY连接此服务器,直接按回车即可,再不需要输入用户名密码了。

PuTTYgen转换通用Key

上一章生成的ppk文件,并非OpenSSH通用的Key,通过下述方法将ppk转换为通用Key。
点击“Load”按钮读取ppk文件,将“Public key for pasting into OpenSSH authorized_key file”框中的所有文字复制到以.pub为后缀的文本文件中。
2017.01.19更新:或者点击save pulbic key按钮,保存后缀为.pub的文件。
点击菜单栏的Conversion->Export OpenSSH key,保存为.pem文件即可。
后续的文章会用到这两个文件。

Plink需要在命令行运行,如果只需要执行一下远程命令并获取结果,可以不用使用PuTTY,而仅用Plink即可。
命令如下。

1
2
plink -load "session name" command
plink username@host command

执行结果如图所示。

Plink会自动寻找PuTTY保存的Session的信息,而无需输入用户名密码。

其他应用

通过Putty的两个小伙伴PuTTYgen和Plink,访问远程服务器无需每次都输入密码。目前我所知的其他应用如下。

  • Sublime Text可以自定义Build System,使用Plink编译执行远程服务器的代码。
  • Eclipse也可以通过其RSE插件及自定义Build Command远程编辑执行代码。

以上应用后期的文章都会介绍。

如果本文对你有所帮助,请小额赞助
~~ EOF ~~