openssh的登录认证可以是password证,也可以采用key验证。我们用可以openssh自带的ssh-keygen, 或者securecrt、Putty上的key生成工具生成一对key,将public key放在服务器上,private key放在客户器机上。每次登录程序会自动将我们的private key和服务器上的public key匹配,匹配成功才能获取shell。
因为用户登录必须要有可以,所以用key认证比password认证更为安全。另外在一些特定的场合,用key认证也方便点。比如我们用一台服务器作为跳板机,ssh上去之后还有ssh到其他的机器上,如果这些机器都是用key认证的话,我们只需开启终端工具的key转发功能,就可以用一个key登录到其他机器上,不用每等一台机器输一次密码。
 
1、生成密钥
工具很多,我就不叙述了。将public key保存在/home/username/.ssh/authorized_keys,文件权限为600
 
2、开启ssh key认证
sh$ vi /etc/ssh/sshd_config 修改如下
 
  
  1. RSAAuthentication yes 
  2. PubkeyAuthentication yes 
  3. AuthorizedKeysFile      .ssh/authorized_keys 
key和password两种认证方式可以同时开启,如果要关闭password认证的话,修改
 
  
  1. PasswordAuthentication no  
重载ssh配置
sh$ /etc/init.d/sshd reload
 
3、终端设置(以crt为例)。
Session Options --> SSH2 -->Public key Properites, 指定private key的位置。

session

Gobal Options -->SSH2 -->advanced 勾选“Enable OpenSSH agent forwarding”开启key转发