2019年01月05日

emacs tramp、putty和openssl无密码登录

emacs可以使用 tramp 编辑一个远程server上的文件,在windows上通过 plink (putty自带)来访问,但是每次都要提示输入密码有点麻烦。是不是有办法不提示输入密码,putty不像secure crt和mobaXterm可以保存键盘输入的密码,只能通过秘钥的方式。plink不输入密码可以在putty中save一个session,在session中把private key加进去。所以要生成一对rsa公私钥。

emacs tramp

C-x C-f /plink:albert@master.k8s
提示输入密码后就可以打开文件操作。
C-x C-f /plinkx:master.k8s
使用putty中保存的session登录。

问题

  1. 在ggtags-mode中,默认eldoc打开提示时,显示tag时会非常慢,每次都要新开一个ssh登录后执行命令,慢得不能忍受。

    看来要继续用terminal了。在linux终端中的emacs好像对键盘的响应有点慢,我的神器大F茶轴键盘有时候按esc键有延迟,唉。只能忍着了。

openssl和putty

有2个生成秘钥的方法,ssh-keygen和openssl。

ssh-keygen

ssh-keygen生成密码非常方便,但是ssh-keygen生成的公私秘钥不能直接导入putty,putty不支持pem格式的秘钥。其实puttygen.exe是可以转换的。

ssh-keygen -t rsa -f albert_rsa

openssl生成秘钥,转换为openssh格式,私钥用puttygen转为putty的ppk格式

用openssl生成秘钥

OpenSSL> genrsa -out albert_rsa_private_key.pem 1024  #生成私钥
OpenSSL> rsa -in albert_rsa_private_key.pem -pubout -out albert_rsa_public_key.pem #生成公钥
OpenSSL> exit #退出OpenSSL程序

ssh-keygen可以把pem格式的公钥转换为openssh格式的。

ssh-keygen -y -f albert_rsa_private_key.pem > albert_ssh_public_key.pub

# 把公钥加到authorized_keys
cat albert_ssh_public_key.pub >> ~/.ssh/authorized_keys

私钥用puttygen转为putty的ppk格式

私钥albert_rsa_private_key.pem用puttygen转为putty的ppk格式,并保存,就可以在putty测试load session登录是否正常了。