Centos6下使用SSH密钥认证配置例子
环境:
本地系统:win8.1 64位
服务器系统:CentOS 5/6 x86_64
总流程:
1、putty生成public key和private key
2、将public key 分发到linux服务器上面,使putty可以使用密钥链接到linux
3、将private key导出成openssh private key格式,并分发给xshell使用
一、使用putty生成public key和private key
1.下载putty
文件下载
2.生成密钥
运行puttygen.exe,选择需要的密钥类型和长度,默认的SSH2(RSA),长度设置为1024就可以了,点击Generate,如下图
然后鼠标随便点几下,就生成好了,在key passhrase设置密码,以防止被获取密钥而导致服务器被别人远程。
点击save private key按钮保存公钥和私钥在电脑上
3.修改密钥
使用notepad打开public key,然后将base64那几行修改成一行,把头和尾巴的注释去掉
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key-20140803"
AAAAB3NzaC1yc2EAAAABJQAAAIBO2DhCxuPLp41ZchDyBj6PYe2RZ2wiQ54Z8bB3
wEjVYBCE5V8U6lKLoWDFlgHWjm+W08mjBUbEyZx0D5oW+zS2cKkJHS1QKhBCMFwD
0nA+/4cQpFN53TTO4iny3cQnwELPS68x+Cc0NTuqu9doYarCOX08tYO/dasfsqcP
sD2psQ==
---- END SSH2 PUBLIC KEY ----
修改成
AAAAB3NzaC1yc2EAAAABJQAAAIB....(表示省略)修改成为一行 ,把换行符删除
保存
二、服务器配置
1、需要关闭selinux
两种方法
方法一:
执行以下命令,临时关闭
setenforce 0
方法二:
修改/etc/selinux/config文件,将SELINUX=disabled
然后保存,重启服务器生效
2、将修改后的public key上传到服务器上面,放在/root/.ssh/目录中,然后执行还需要设置权限
cat [pulbic key filename]>> authorized_keys
chmod 600 authorized_keys
chmod 700 /root/.ssh
3、然后修改authorized_keys,在刚刚添加的那段Base64字符串前面加上ssh-rsa,后面使用空格隔开,如下
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIB....(表示省略)
4、修改/etc/ssh/sshd_config文件,找到以下配置项,修改如下
PubkeyAuthentication yes //开启密钥认证
AuthorizedKeysFile.shh/authorized_keys //指定文件路径
PasswordAuthentication no //关闭密钥认证
5.重启sshd服务
service sshd restart
三、本地验证
1、将private key导出成openssh private key格式
打开puttygen.exe,点击load,加载刚导出的private key文件
然后导出成openssh private key格式
点击Conversions—>Export Openssh key然后选择保存位置就行了
2.使用xshell等软件加入密钥登陆服务器,如果能正常通过密钥创建,就说明配置成功了!