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 修改如下
- RSAAuthentication yes
- PubkeyAuthentication yes
- AuthorizedKeysFile .ssh/authorized_keys
key和password两种认证方式可以同时开启,如果要关闭password认证的话,修改
- PasswordAuthentication no
重载ssh配置
sh$ /etc/init.d/sshd reload
3、终端设置(以crt为例)。
Session Options --> SSH2 -->Public key Properites, 指定private key的位置。
Gobal Options -->SSH2 -->advanced 勾选“Enable OpenSSH agent forwarding”开启key转发
转载于:https://blog.51cto.com/orzee/640369