文章目录

  • 一、 实验原理
  • 二、 实验结果:
    • 1、 准备:
    • 2、 客户端生成私钥/公钥对:
    • 3、 SSH服务器配置:
    • 4、 在服务器上加入用户公钥
    • 5、 使用证书登录
  • 三、 实验总结与收获:

一、 实验原理

通过 SSH(Secure Shell)登录 Linux 服务器常见的认证方式有密码和证书两种。从安全角度考虑,大家都推荐用证书登录。
配置服务器上的 SSH 为证书登录模式。
客户端生成证书: 私钥(private key)和公钥(public key)。
私钥留在客户端,需要安全保存: 一般会设置一个密码,可能还需要加密密钥文件。如果对自己电脑里存的文件的安全有信心,就不信要设置密码了。而如果设置了密码,以后每次使用此私钥登录服务器的时候都需要先输入密码解开私钥。
公钥上传并添加到服务器上 SSH 配置指定的文件中,使之被信任。
使用 PuTTY 登录服务器,需要在 putty 的 default settings -> ssh -> Auth 中加上需要的私钥并保存,然后再登录。

二、 实验结果:

1、 准备:

登录Shell软件:PuTTY;证书生成软件:puttygen

2、 客户端生成私钥/公钥对:

下面可以选择加密方式,默认是 SSH-2 RSA 即 rsa 方式; 旁边有位数可以选择,默认是 2048 位。点击中间靠右侧的 Generate,然后在该窗口的上半部分空白处随意晃动鼠标,就能看到证书在根据这些随机的点产生,等进度条走完,密钥对产生,就到了下面的界面。

生成key后可以修改comment标识key的用途。
保存private key
保存私钥前可以对private key设置密码,每次使用证书登录前都要验证密码,更加安全,但是不设置也是可以的。不设置的话会有提示确认是否不设置密码。

3、 SSH服务器配置:

安装SSH服务:sudo apt-get install ssh
启动SSH服务:sudo /etc/init.d/ssh start
修改SSH配置文件:sudo vim /etc/ssh/sshd_config

a. 端口
端口,默认 22,建议自定义,比如 2222、1234、54321 等(一般高于 2000 而不能超过 65555)
b. 协议

Protocol 2

c. 登录控制
禁止 Root 账户登录,

PermitRootLogin no

不允许空密码登录,默认已经是 no,

PermitEmptyPasswords no

允许 SSH 登录的用户名/用户组,

AllowUsers sjc

不让 sshd 去检查用户目录或某些重要档案的权限数据,这是为了防止用户将某些重要档案的权限设错。例如用户的 ~.ssh/ 权限设错时,某些特殊情况下会不许用户登录,

StrictModes no

d. 允许密钥登录
允许用户自行使用成对的密钥系统登录服务器,这里仅针对协议版本 2。用户自己生成的公钥数据就放置于相应的(服务器上该用户自己的)用户目录(例如,/home/sjc)下的 .ssh/authorized_keys 文件里面,

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys

4、 在服务器上加入用户公钥

生成的用户的公钥需要经由系统管理员(root)导入服务器上的 SSH 的信任证书列表里面;或者如果你已经在服务器上有了用户名可直接访问服务器,则将自己的公钥添加到自己的用户目录下的特定文件里即可。SSH 服务器会自动根据用户登录服务器使用的用户名到服务器上相应的用户目录里的 .ssh/authorized_keys 文件里寻找公钥。

修改文件访问权限(如果在 sshd_config 中配置了 StrictModes 为 yes,那么这个就是必须的了,否则无法工作),
# chmod 700 /home/sjc/.ssh
# chmod 600 /home/sjc/.ssh/authorized_keys
重启SSH服务:
# systemctl restart sshd

5、 使用证书登录

输入正确的HostName(IP Address)与Port,在左侧的Connection/SSH/Auth中设置Private Key File位置,回到Session保存,方便下次打开,点击右下的Open,输入用户名(如果私钥设置了密码还需要输入密码)即可连接到服务器了

三、 实验总结与收获:

通过本次实验,学会了如何利用SSH使用证书远程登陆服务器,并学会了如何生成公钥和私钥,如何在服务器配置SSH服务。

公钥证书的颁发和使用相关推荐

  1. nodejs 如何通过API 证书(权威CA颁发)下载敏感信息加密公钥证书?

    在服务商平台的API接口中,有部分接口在传参时,需要对参数中的敏感信息进行RSA加密(如:小微商户申请入驻.小微商户修改结算信息等).在这些接口的参数加密说明中,是这样注明的: 加密方法详见敏感信息加 ...

  2. linux下利用openssl来实现证书的颁发(详细步骤)--转载和修改

    原文地址:http://www.cnblogs.com/firtree/p/4028354.html linux下利用openssl来实现证书的颁发(详细步骤) 1.首先需要安装openssl,一个开 ...

  3. PKI/CA (5)X.509公钥证书

    1. 定义 1.1. 公钥证书 既是对某个公钥加上一个签名,形式为:KeyPub + ca_Info + enc_ca_Hash+ addInfo KeyPub 欲签名的公钥 ca_Info身份信息 ...

  4. (一)--使用RSA公钥证书解密

    最近要用rsa的公钥解密,这个公钥存储在公钥证书里面,这个公钥证书呢- 安装在了windows操作系统里.以下是讲解部分,如果不想看的直接跳跃到最末尾的代码部分. 公钥–>公钥证书–>公钥 ...

  5. 小王的尴尬日常(一)--使用RSA公钥证书解密

    最近接了一个活,要用rsa的公钥解密,这个公钥存储在公钥证书里面,这个公钥证书呢- 安装在了windows操作系统里.以下是讲解部分,如果不想看的直接跳跃到最末尾的代码部分. 公钥–>公钥证书– ...

  6. RSA、SM2公钥证书信息的读取

    前言:在开发过程中,经常会需要使用来进行签名.验签等操作.通常情况下,国际算法会使用RSA算法公钥证书,而随着国密算法的升级普及,及数据安全的更高的要求下,需要进行一系列的升级改造. 必要情况下,会需 ...

  7. 建立私有CA实现证书申请颁发

    CA和证书 PKI:Public Key Infrastructure 公共密钥加密体系 签证机构:CA(Certificate Authority) 注册机构:RA 证书吊销列表:CRL 证书存取库 ...

  8. keytool制作CA根证书以及颁发二级证书

    步骤一:环境准备 1)电脑中部署好以下环境 Tomcat:apache-tomcat-9.0.11 JDK:jdk1.8.0_144 通过地址:http://localhost:8080/   可以正 ...

  9. 加解密算法、消息摘要、消息认证技术、数字签名与公钥证书

    本文讲解对称加密.非对称加密.消息摘要.MAC.数字签名.公钥证书的用途.不足和解决的问题. 0.概述 当发送方A向接收方B发送数据时,需要考虑的问题有: 1.数据的安全性. 2.数据的完整性,即数据 ...

最新文章

  1. 硬件:笔记本常见故障处理技巧与思路,值得收藏!
  2. mysql 导致iis 假死_php使用MySql函数导致Apache(iis)崩溃的问题解决方案
  3. ns2相关学习——tcl脚本编写(1)
  4. spring boot + vue 前后端分离时间戳转换为 yyyy:MM:dd HH:mm:ss格式
  5. 一个IT经理眼中的RTX、Simba2013与Lync
  6. Android 使用数据库 SQlite
  7. LG电子发布旋转双屏5G手机Wing 售价约6800元
  8. 千万不能干的事(文摘)
  9. 会畅通讯登陆创业板上市,CEO黄元庚说云视频是下一个万亿级市场
  10. 05 - Django应用第二步
  11. Julia: Dates =DateFormat, format,parse.......
  12. python sep参数_Python sep参数使用方法详解
  13. 【Day2.2】海边行宫忘忧宫——“爱与希望”之宫
  14. js 校验是否合法的中国身份证
  15. MATLAB许可证过期的解决办法
  16. python数据收集整理教案_数据收集整理教学设计
  17. tdd测试_变异测试是TDD的发展
  18. 刷手机流量,反正浪费就完事了
  19. PBR标准化工作流程
  20. NFC framework introduce(一)

热门文章

  1. Debug:‘boost::this_thread‘ has not been declared; undefined reference to ‘boost::this_thread...‘
  2. c语言s-next,memset_s - [ C语言中文开发手册 ] - 在线原生手册 - php中文网
  3. 在Visual Studio上开启自己的C++学习之旅
  4. mysql navicat怎么打开文件_navicat怎么打开sql
  5. Git使用 从入门到入土 收藏吃灰系列 (九) git reset 移除暂存区与版本回退
  6. 手把手教你开发enc424j600+Lwip以太网-送全部源码
  7. 直播出新规 这些行为会被限制参加活动
  8. matlab左侧显示当前文件夹,matlab还原默认布局,matlab左侧显示
  9. 海康java版本SDK中jna.jar的说明
  10. 如何修改Julia语言环境的安装包默认安装文件夹的位置