centos7搭建证书登录ssh服务

平时我们远程管理 centos 主机使用 putty 工具, 也不需要用到证书登录, 但是当与客户传输(sftp协议)资料时,可能需要用到证书登录

本文介绍如何搭建一台 sshd 服务器以及用户通过证书登录 sshd 服务

 

环境 

[root@localhost ~]# cat /proc/version 
Linux version 3.10.0-123.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.2 20140120 (Red Hat 4.8.2-16) (GCC) ) #1 SMP Mon Jun 30 12:09:22 UTC 2014

[root@localhost ~]# ssh -V
OpenSSH_6.4p1, OpenSSL 1.0.1e-fips 11 Feb 2013

 

第1步,生成 ssh 证书

在 client 端生成证书, 最终把公钥放到 server 端

建立RSA类型,长度为2048的证书,文件名为: rsa_2048_181205
# ssh-keygen -t rsa -b 2048 -f rsa_2048_181205
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in rsa_2048_181205.
Your public key has been saved in rsa_2048_181205.pub.
The key fingerprint is:
45:c1:04:a9:b6:74:5f:ef:d5:47:1b:04:f7:43:5f:a3 root@localhost.localdomain
The key 's randomart image is:
+--[ RSA 2048]----+
|        . +.  .+.|
|        . .    .=|
|       .  .   ..o|
|   此处有马赛克  .o|
|     o  S. . . .+|
|      .   .   ..+|
|             . ..|
|              .  |
|                 |
+-----------------+

带.pub 的是公钥, 另一个是私钥
# ls rsa_2048_*
rsa_2048_181205  rsa_2048_181205.pub

 

第2步, 建立账号和群组

在 server 端建立账号

建立群组
# groupadd sftp

建立账号
# useradd -G sftp sftp01

设置密码
# passwd sftp01
Changing password for user sftp01.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.

建立证书存放目录
# mkdir /home/sftp01/.ssh

修改目录 owner
# chown sftp01:sftp /home/sftp01/.ssh

设置权限
# chmod -R 755 /home/sftp01/.ssh

将client 端的公钥 rsa_2048_181205.pub 拷贝到 server 端的 .ssh 目录下命名 authorized_keys

设置文件 owner
# chown sftp01:sftp /home/sftp01/.ssh/authorized_keys 

设置文件权限,sshd服务有安全验证,此文件权限太大会导致用户不能访问(重要)
# chmod 600 /home/sftp01/.ssh/authorized_keys 

 

第3步, 配置 sshd 服务

启用 RSA验证和 public key 验证, 配置 public key 文件存放位置

# vim /etc/ssh/sshd_config

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys

确认开启了以上3项, 如果没有就添加, 如果想关闭密码验证功能就多改以下这一行:
PasswordAuthentication no

重启服务

# systemctl restart sshd

 

在 client 端进行测试, 指定私钥路径, 输入私钥密码, 出现 sftp> 表示已经成功登录 sftp 

# sftp -oIdentityFile=./rsa_2048_181205 -oPort=22 sftp01@192.168.1.102
Enter passphrase for key './rsa_2048_181205': 
Connected to 10.134.147.162.
sftp> 

到此, 已经可以在 centos 下使用私钥登录 sftp 了,  sftp 服务目录权限配置的部分在此略过.

 

>windows下使用 putty + 密钥登录 ssh 

在 putty 界面中选择私钥

然后在 Session 界面中填入 HostName 和 Port, 点击 Open 按钮

报错了: 无法使用这个私钥

原因: 这套密钥是我们在 linux 下用 ssh-genkey 建立的, putty 命令以及 WinSCP 等软件不支持这种密钥格式.

解决办法: 使用 putty 安装版自带的 puttygen.exe, 转换一下格式

 

点击 Load 按钮, 选中私钥文件

 

输入私钥密码

 

提示这个 ssh-2私钥需要转换为 putty 格式的私钥才能使用

 

点击保存私钥按钮, 另存为 rsa_2048_181205.ppk ,之前的私钥是没有扩展名的

 

再用 putty 使用新的私钥进行连接

 

输入账号 sftp01, 再输入私钥密码.

到此, 使用 putty 免密成功登录到 ssh 了.  WinSCP软件登录方同基本相同, 操作步骤省略.

如果使用FreeSSHd 软件搭建 sftp 服务,也需要转换证书.

 

 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值