Putty通过密钥配对自动登录SSH服务器不完全笔记

作者:老谬  来源:非常谬论
 
这两日忙里偷闲,搭了两把翻墙的梯子,穿过GFW的身躯,在铁幕之下进进出出,倒也惬意。

昨天操练的SSH隧道,爽度如果以10分计,绝对9分以上,唯一的麻烦之处乃是putty启动后,要输入SSH主机用户名和复杂的密码。今晚想起SSH可以使用密钥对自动登录,设置好后便可一劳永逸,便动起手来,果然爽度至极。

1. 生成密钥对。

运行PUTTY软件包中的PUTTYGEN,点击Generator,鼠标在窗口上方的空白处随机运动,状态条满后便生成了一个1024位的SSH-2 RSA密钥对。Key下空白处出现的字符串是密钥对中的公钥,Key fingerprint后面是私钥的指纹,Key comment是密钥的注释,可以写入一些提示性的注释文字,如暗示一下私钥密码啥的,Key passphrase是为私钥设置的密码,如果需要完全自动登录,密码应留空。最后点击 Save private key 按钮保存私匙。

2. 发布公钥。

运行putty,登录ssh服务器,在用户主目录下新建.ssh目录(mkdir ~/.ssh),设置.ssh目录权限为700(chmod 700 ~/.ssh ),在.ssh目录下新建authorized_keys文件(touch ~/.ssh/authorized_keys),设置authorized_keys权限为600(chmod 600 ~/.ssh/authorized_keys),将第一步生成的OpenSSH公钥写入authorized_keys文件中(vi ~/.ssh/authorized_keys)。

3. 自动登录。

3.1 Putty。启动Putty,设置好session的各项参数,在“Connection”中“SSH”的“Auth”项下Browse第一步保存出来的私钥, 在“Tunnels”中按“SSH的中国式心法” 所述设置好动态转发端口,回到Session中,点击 Save 按钮把这个连接保存下来,点击 Open 按钮就可以自动登录SSH服务器。如果私钥设置了密码,仍然需要按提示输入才能登录。

3.2 Plink。

CMD中Putty目录下运行“Plink.exe -C -N -D 7070 yourname@sshserver.com -i YourPrivateKey.ppk”。参数C为允许数据压缩,N表示不要Shell,D表示动态端口转发。另一种方法是将前面的命令写入bat文件,以后只需直接双击这个批处理文件就可以自动登录了。其实我们也可以在批处理文件中直接写入“Plink.exe -C -N -D 7070 yourname@sshserver.com -pw Password”,实现自动登录,不过保存在本地的明文密码对SSH主机来说是隐含着巨大风险的。

3.3 PAGEANT。

启动PAGEANT,点击Add Key,选择第一步生成的私钥,再运行Plink或者Putty就能自动登录了。PAGEANT特别适用于私钥设置了密码的情况,Add Key时输入私钥密码后,PAGEANT就将解密后私钥保存在内存中,供Plink、Pscp、Psftp、Putty等程序需要的时候调用。

更详细的Putty中文指南请参考柴锋的“三分热度” 。

使用SSH密钥对自动登录,我们就不必为记住主机密码而降低密码的安全层级,一个足够复杂的密码能够有效避免暴力猜解的风险。享受便利的时候,我们也必须保护私钥的安全,特别是没有设置密码的私钥。私钥一旦被别有用心的五毛啊、愤青啊、警警GG啊、察察MM啊啥的拿到,说不定我们的人生,就永远地改变了航向。

一心出门冲浪的人啊,请先关好自家的门。阿门!

没有评论: