欢迎光临
我们一直在努力

【Linux】使用签名的SSH公钥进行临时免密登录

使用场景

在仅允许使用公钥登录的服务器上,临时需要厂商技术人员支持; 但不想让他们具有永久访问的选项,或者由于不想添加对方的公钥到 authorized_keys 文件。

是否能够仅临时创建一个提供1小时或1天的访问权限的 SSH 公钥?

实验环境

系统版本: CentOS 7.x

为了方便区分操作,文档中预先对机器设置了主机名

  • SSH 服务器主机名: server

  • SSH 客户端主机名: client

实验步骤

  • 服务器: 生成 SSH 的非对称密钥,并将密钥放置于 /etc/ssh 目录中,该密钥的作用是: 用于对客户端的公钥进行签名

    图片

  • 客户端: 使用 ssh-keygen 命令生成 SSH 非对称密钥对

    图片

  • 客户端: 将生成的公钥(文件默认位于 /root/.ssh/id_rsa.pub )发送给服务端; 此处由于实验环境,使用 scp 命令进行演示,工作中应该通过其他介质传输该文件(如直接把公钥文件中的内容,直接复制给服务器的管理员)

    图片

  • 服务器: 使用自己的私钥,对客户端的公钥进行签名,并且指定仅允许客户端使用"chenjian"用户免密登录,期限为1天; 签名后,会在当前目录下生成一个新的签名公钥文件。

    图片

  • 服务器: 将签名后的公钥,发给客户端(工作中就是直接将该文件以其他传输介质发送给客户端管理人员)

    图片

  • 客户端: 收到签名的公钥后,将其移动到 ~/.ssh/ 目录下

    图片

  • 客户端: 查看该签名公钥的信息,了解该公钥到期时间以及能够使用什么用户进行免密登录; 要查看公钥信息,请使用 ssh-keygen -L 命令

    图片

  • 服务器: 由于签名的证书限定了使用 "chenjian" 用户进行免密登录,所以系统上要存在该用户,否则客户端将无法登录; 使用 adduser 命令创建一个普通用户

    图片

     

  • 客户端: 使用 chenjian 用户进行免密登录

    图片

  • 服务器: 查看连接时的日志信息

    图片

     

  • 至此,实验结束; 还可以额外验证当公钥到期后,能否正常登录,使用 timedatectl 命令将日期后移2天并验证

    图片

     

  • 客户端: 重新尝试免密登录; 会发现免密登录失败,要求使用密码进行登录

    图片

     

  • 服务器: 再次查看日志; 会显示公钥已经过期; 实验结束

    图片

  • 相关技术文章:

    【Linux技术】SSH运维总结

    【Linux】ssh命令 – 安全的远程连接服务

    【资料领取】200个Linux常用命令手册

    《鸟哥Linux私房菜》全新完整中文版PDF

    40 个简单又有效的 Linux Shell 脚本示例

    linux运维必备,100道常见面试题

    超强linux学习笔记,值得一看(附PDF下载)

    红帽认证有什么优势?速看本文

    5 种 Linux 安装包管理工具中文手册!抓紧看!


    赞(0)
    未经允许不得转载:171主机测评 » 【Linux】使用签名的SSH公钥进行临时免密登录
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址