如何整合openSSH和SCRT
OpenSSH/openSSL 是现在最流行的开源软件,保护着数百万的Linux, BSD, Unix主机。而历来商业的SSH server/Client 对openSSH/openSSL的支持都不是太好,在windows下的客户端SecureCRT要支持openSSH总是有这样或那样的不足。
要么,用SecureCRT(简称SCRT)生成的公钥/密钥,然后将公钥放到openSSH Server上去,可以支持SCRT利用证书登陆到openSSH server上,但如果从另一台使用openSSH client的机器要登陆到这个openSSH server,却死活都通不过。
要么,用openSSH 生成的公钥/密钥,则安装openSSH client的机器要连接过来毫无问题,但SCRT却通不过。
为了这个问题琢磨了很久,后来在SecureCRT的官方论坛里,有人提到SecureCRT自4.0以来,已经可以支持openSSH的key了。于是怀着试试看的心情,将SCRT升级到4.1,重新做了一下配置,成功了!
实现了openSSH server + SCRT/openSSH Client 的组合,以后无论是win平台还是*nix平台,都可以方便的使用证书登陆了,实在解决了一个大问题。
How to implement?
以下简单描述一下如何配置与实现的。
配置openSSH server
以下是/etc/ssh/sshd_config的内容:
Port 22 Protocol 2 HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key KeyRegenerationInterval 1h SyslogFacility AUTHPRIV LoginGraceTime 5m PermitRootLogin yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys IgnoreRhosts yes HostbasedAuthentication no PasswordAuthentication yes PermitEmptyPasswords no ChallengeResponseAuthentication no Subsystem sftp /usr/libexec/openssh/sftp-server
该配置允许使用证书或密码登陆,对于出差到外地但没带证书的情况就很有用了,如果想只使用证书,则将:
PasswordAuthentication yes
改为:
PasswordAuthentication no
利用ssh-keygen生成公钥/密钥
例如要生成用户hzqbbc的公钥/密钥,则先su 到hzqbbc用户,然后输入:
ssh-keygen -t dsa
ssh-keygen会提示文件的存放位置及密钥的加密字,按要求输入即可。以下是样例:
[hzqbbc@p4 .ssh]$ ssh-keygen -t dsa Generating public/private dsa key pair. Enter file in which to save the key (/home/hzqbbc/.ssh/id_dsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/hzqbbc/.ssh/id_dsa. Your public key has been saved in /home/hzqbbc/.ssh/id_dsa.pub. The key fingerprint is: aa:0a:3c:be:7f:35:9b:4f:82:bf:1d:ca:0b:dc:bc:cc hzqbbc@p4
将id_dsa和id_dsa.pub复制到windows系统
在windows客户机上,建立C:\SSH目录,然后将id_dsa和id_dsa.pub原封不动的复制到C:\SSH里,确保文件名为id_dsa和id_dsa.pub
配置SCRT
请确认SecureCRT安装或升级到4.0以上,我目前使用的是4.1,然后开始配置。
第一步:打开要配置证书的主机名记录,选中主机名后,点图中红色方框的图标,进入该主机的详细配置界面。
第二步,Connection页中,Username填写要登陆的用户,该用户就是刚才创建证书的用户,这个必须注意。然后在Connection --> Authentication 中,Primary认证方法选PublicKey,并点开“Properties”。
第三步,选Use session public key ,意思是每个不同会话使用不同的证书,这对于管理大量主机的系统管理员较为有用。如果只是维护少量机器,可以考虑使用同一套证书。
Use identity file那里,打开“...”按钮,浏览我的电脑,找到C:\SSH目录,然后看到id_dsa和id_dsa.pub文件,选中id_dsa文件,然后确定,就可以看到路径为C:\SSH\id_dsa 了。
保存好配置,关闭SecureCRT,然后打开配置了证书的主机,正常情况下将提示要输入密钥的加密字,输入后就应该可以登陆进系统了。
同时再打开另一个SCRT窗口。登陆同样的主机,由于SCRT已缓存了证书及加密字,因此不再需要输入用户名密码,使用就很方便了!