`
jason204
  • 浏览: 41652 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

OpenSSH原理及部署

阅读更多


OpenSSH是完全免费的 SSH 的实现。OpenSSH 更加吸引人的特性之一是它能够使用基于一对互补的数字式密钥的 RSA 和 DSA 认证协议来认证用户。RSA 和 DSA 认证承诺不必提供密码就能够同远程系统建立连接,这是它的主要魅力之一。

OpenSSH 的 RSA 和 DSA 认证协议的基础是一对专门生成的密钥,分别叫做专用密钥和公用密钥。使用这些基于密钥的认证系统的优势在于:在许多情况下,有可能不必手工输入密码就能建立起安全的连接。

RSA/DSA 密钥的工作原理

1.生成一对密钥,一把专用密钥和一把公用密钥,公用密钥用于对消息进行加密,只有拥有专用密钥的人才能对该消息进行解密。公用密钥只能用于加密,而专用密钥只能用于对由匹配的公用密钥编码的消息进行解密。

2.公用密钥拷贝到 remotebox,把它放在一个专门的文件(~/.ssh/authorized_keys)里

3.ssh 告诉 remotebox 的 sshd 它想使用 RSA 认证协议。Remotebox 的 sshd 会生成一个随机数,并用公用密钥对这个随机数进行加密。然后, sshd 把加密了的随机数发回给正在localbox 上运行的ssh。接下来, ssh 用专用密钥对这个随机数进行解密后,再把它发回给 remotebox。 sshd 得出结论,既然持有匹配的专用密钥,就应当允许登录。

RSA部署

1.在SSH客户端,RSA 密钥对的生成
% ssh-keygen
注释: ~/.ssh/identity 和存储公用密钥的 ~/.ssh/identity.pub,并提供给 ssh-keygen 一个安全的密码短语。

2.在远程主机,RSA 公用密钥的安装
•copy 公用密钥到远程机器:
% scp ~/.ssh/identity.pub drobbins@remotebox

•在远程机器上,将公用密钥写到~/.ssh/authorized_keys, 此步骤相当于注册公用密钥。
% ssh drobbins@remotebox
drobbins@remotebox's password: (enter password)
Last login: Thu Jun 28 20:28:47 2001 from localbox.gentoo.org
Welcome to remotebox!
% cat identity.pub >> ~/.ssh/authorized_keys
% exit

如果刚才没有提示您输入密码短语,您可以试验一下以下几种情况。第一,尝试通过输入 ssh -1 drobbins@remotebox 登录。它会让 ssh 只应用 ssh 协议版本 1,如果出于某种原因远程系统缺省设置的是 DSA 认证的话,可能会要求这么做。如果不奏效的话,请确认您的 /etc/ssh/ssh_config 里没有写着这么一行 RSAAuthentication no。如果有的话,请您在前面加上一个“#”把这行注释掉。另外,还可以试着同 remotebox 的系统管理员联络,核实一下在他们那一端已经启用了 RSA 认证,并且 /etc/ssh/sshd_config 里的设置是正确的。

DSA部署

1.密钥的生成
ssh 协议的版本 1 使用的是 RSA 密钥,而 DSA 密钥却用于协议级 2,这是 ssh 协议的最新版本。
ssh-keygen -t dsa
缺省的 ~/.ssh/id_dsa 和 ~/.ssh/id_dsa.pub

2.DSA 公用密钥的安装
把 ~/.ssh/id_dsa.pub 文件拷贝到 remotebox,然后把它附加到 remotebox 上的 ~/.ssh/authorized_keys2 文件

Reference:

http://www.ibm.com/developerworks/cn/linux/security/openssh/part1/index.html
http://www.ibm.com/developerworks/cn/linux/security/openssh/part2/index.html
分享到:
评论

相关推荐

    Hisi交叉编译openSsh、部署使用到配置和脚本

    在本文中,我们将深入探讨如何在Hisi 3559A ARM64平台上交叉编译并部署openSSH。这是一项关键的技术任务,对于在嵌入式设备或服务器上实现安全远程连接至关重要。Hisi 3559A是一款基于ARM架构的处理器,常用于物联网...

    openssh9.0 for centos7 rpm包+安装步骤

    "Centos7"可能是其他相关文档或脚本,也可能包含了一些自动化安装的示例,可以帮助你更高效地完成OpenSSH 9.0的部署。 总的来说,安装和配置OpenSSH 9.0需要理解其基本原理、熟悉Linux系统管理和网络安全知识。通过...

    CentOS7系统自带的openssh-7.4p1版本的rpm包

    `CentOS7` 是一款基于 `Linux` 的企业级操作系统,广泛应用于服务器部署。在 `CentOS7` 中,`openssh` 是一个关键的组件,它提供了安全的远程登录功能,使得管理员可以通过 `SSH (Secure Shell)` 协议在不安全的网络...

    移植Openssh到ARM Linux目标板

    首先,移植OpenSSH涉及的主要步骤包括:了解目标系统的环境、获取源码、配置编译、解决依赖问题以及安装部署。 1. **了解目标系统环境**:在开始移植前,你需要知道目标板的CPU架构(这里是ARM)、操作系统版本、...

    openssh-8.4p1.zip

    《OpenSSH 8.4p1在CentOS7系统中的应用与安全》 OpenSSH是开源社区提供的一个安全网络服务套件,它主要...对于任何使用CentOS7的企业或个人用户来说,理解OpenSSH的工作原理、安装步骤以及安全配置都是至关重要的。

    openssh8.8-1-rockylinux8.4.tar.gz

    在Rocky Linux 8.4上部署OpenSSH 8.8p1是一项关键的安全措施,它提供了一种安全的远程访问方式。通过合理配置和安全实践,我们可以确保系统的稳定性和安全性。理解OpenSSH的工作原理和配置选项,对于管理和维护远程...

    openssh-9.0p1-1.el7.centos.x86_64

    《OpenSSH 9.0p1-1.el7.centos.x86_64:安全连接的基石》 OpenSSH,全称为Open Source Secure Shell,是...通过理解和掌握OpenSSH的工作原理及其配置,我们可以更有效地利用这一工具,确保网络环境的安全性和效率。

    openssh-8.1p1 rpm包含centos7和centos6通用

    这背后的原理是,开发者在构建RPM包时,考虑到了跨版本的兼容性,确保了OpenSSH的核心功能可以在不同的CentOS版本上正常运行。 OpenSSH 8.1p1的主要改进包括: 1. **安全增强**:修复了多个安全漏洞,提高了服务的...

    Go-Sharkey是一个服务用于管理OpenSSH使用的证书

    3. **跨平台**:Go语言编译的程序可以在多种操作系统上运行,使得Go-Sharkey可以轻松部署在各种环境中。 4. **强大的标准库**:Go语言的标准库提供了丰富的网络、加密和I/O功能,便于开发安全相关的服务。 在`...

    图解rsync数据同步部署文档.docx

    rsync 的工作原理是通过比较源文件和目标文件的 checksum,来确定哪些文件需要被同步,从而减少数据传输的流量。 二、Rsync 同步算法 rsync 的同步算法可以分为三个阶段:扫描、比较和传输。扫描阶段,rsync 会...

    Ubuntu 20.04.1安装ssh离线资源包

    同时,为了增强安全性,建议生成和部署强密钥对,并限制用户权限。 最后,为了确保SSH服务的安全性,应定期更新SSH软件包以修复可能的安全漏洞。在没有网络的情况下,你需要将更新的`.deb`包复制到机器上,然后重复...

    ansible的安装部署

    6. 基于 OpenSSH支持 playbook 编排任务 7. 幂等性:一个任务执行 1 遍和执行 n 遍效果一样,不因重复执行带来意外情况 8. 无需代理 9. 不依赖 PKI(无需 SSL) 10. 可使用任何编程语言写模块 11. YAML 格式,编排...

    Open POWER 环境部署OpenStack.docx

    整个部署过程需要细致的操作和对OpenStack及OpenPOWER架构的深入理解。通过遵循上述步骤,可以在OpenPOWER环境下搭建起稳定的OpenStack云平台,满足企业对高性能云服务的需求。在实际部署时,还应考虑监控、备份、...

    windows 7架设OpenSSH服务器实践

    在Windows操作系统上部署OpenSSH,需要借助于第三方软件包,如Cygwin或者Bitvise等,因为原生的Windows不包含SSH服务。Cygwin是一个为Windows提供类Unix环境的软件包,它允许用户在Windows上运行大量Unix软件,包括...

    部署jumpserver堡垒机核心组件koko

    Koko的工作原理是作为中间人,拦截并记录运维人员通过SSH协议进行的所有操作,同时提供会话回放功能,以便于审计和故障排查。以下是部署Koko的详细步骤: 1. **环境准备**: - 确保你的服务器运行的是Linux操作...

    Ansible运维管理平台部署、维护与调优.pdf

    **Ansible** 是一个基于 **OpenSSH** 的开源自动化运维管理工具,它主要用于配置管理和任务调度。与传统的配置管理工具相比,Ansible的最大特点是简单、易于部署并且无代理,这意味着不需要在被管理的节点上安装额外...

    虚拟化和云计算课程实验报告Hadoop平台搭建.doc

    在实验中,我们将配置和使用 SAN 存储,安装和部署 Hadoop-HDFS,运行 MapReduce 程序,并学习 MapReduce 编程模型的原理。 一、实验目的 在虚拟化和云计算课程实验中,我们的目的是掌握在 Linux 上配置 iSCSI ...

    Toolkit for OpenSSH Key Administration-开源

    本文将深入探讨TOSKA的核心功能、工作原理以及如何利用它来提升你的IT环境的安全性。 首先,我们理解OpenSSH的重要性。OpenSSH是一种广泛使用的开源工具,它提供了加密的网络服务,如远程登录、文件传输等,极大地...

    Centos7安装Gitlab

    同时,还涉及到 Jenkins 的概念和自动化部署的实现原理。 首先,我们需要了解什么是持续集成(CI)和持续交付(CD)。持续集成是指在开发过程中频繁地将代码部署到主干上,并进行自动化测试。持续交付是在持续集成...

Global site tag (gtag.js) - Google Analytics