ssh-keygen 为ssh生成、管理和转换身份验证密钥。ssh-keygen可以创建供ssh协议版本1使用的RSA密钥和供SSH协议版本2使用的RSA或DSA密钥。要生成的密钥类型是用-t选项指定的。如果不带任何参数调用,ssh-keygen将生成一个RSA密钥,用于ssh协议2连接。

ssh-keygen还用于生成用于 Diffie-Hellman 组交换 (DH-GEX) 的组。
通常,每个希望将 SSH 与 RSA 或 DSA 身份验证一起使用的用户都会运行一次,以在~/.ssh/identity~/.ssh/id_dsa~/.ssh/id_rsa中创建身份验证密钥。此外,系统管理员可以使用它来生成主机密钥,如/etc/rc所示。

通常,该程序会生成密钥并要求一个文件来存储私钥。公钥存储在同名但附加了“.pub”的文件中。该程序还要求输入密码。密码可以为空表示没有密码(主机密钥必须有一个空的密码),也可以是任意长度的字符串。密码短语类似于密码,不同之处在于它可以是包含一系列单词、标点符号、数字、空格或任何您想要的字符串的短语。好的密码短语长度为 10-30 个字符,不是简单的句子或其他容易猜到的(英文散文每个字符只有 1-2 位熵,并且提供了非常糟糕的密码短语),并且包含大小写字母、数字、和非字母数字字符。稍后可以使用-p选项更改密码。

没有办法恢复丢失的密码。如果密码丢失或忘记,则必须生成一个新密钥并将其复制到相应的公钥到其他机器。

对于 RSA1 密钥,密钥文件中还有一个注释字段,只是为了方便用户帮助识别密钥。注释可以说明密钥的用途或有用的信息。创建密钥时,注释被初始化为 ‘‘user@host’’,但可以使用-c选项进行更改。

生成密钥后,下面的说明详细说明了应将密钥放置在何处以进行激活。

问题

[root@master ~]# ssh 192.168.10.195
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:SJBJH6u/Qtn1fY+Fcw9sOxlqT6Wda8bWn+NBh40HgII.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /root/.ssh/known_hosts:63
ECDSA host key for 192.168.10.195 has changed and you have requested strict checking.
Host key verification failed.

-H Hash a known_hosts file
这将用指定文件中的哈希表示替换所有主机名和地址;原始内容被移动到带有. old后缀的文件中。ssh和sshd可能会正常使用这些散列,但是如果文件内容被泄露,它们不会泄露识别信息。此选项不会修改现有的散列主机名,因此在混合了散列和非散列名称的文件上使用是安全的。

-R hostname
从known_hosts文件中删除属于hostname的所有密钥。此选项对于删除哈希主机非常有用(请参见上面的-H选项)。

[root@master ~]# ssh-keygen -R 192.168.10.195
# Host 192.168.10.195 found: line 63
/root/.ssh/known_hosts updated.
Original contents retained as /root/.ssh/known_hosts.old

再次尝试登录,即可登录成功!

文件

Man手册
~//identity
包含用户的协议版本 1 RSA 身份验证身份。除用户外,任何人都不应读取此文件。生成密钥时可以指定密码;该密码将用于使用 3DES 加密此文件的私有部分。ssh-keygen不会自动访问此文件,但它作为私钥的默认文件提供。ssh 将在尝试登录时读取此文件。

~/.ssh/identity.pub
包含用于身份验证的协议版本 1 RSA 公钥。该文件的内容应添加到用户希望使用 RSA 身份验证登录的所有计算机上的~/.ssh/authorized_keys中。无需将此文件的内容保密。

~/.ssh/id_dsa
包含用户的协议版本 2 DSA 身份验证身份。除用户外,任何人都不应读取此文件。生成密钥时可以指定密码;该密码将用于使用 3DES 加密此文件的私有部分。ssh-keygen不会自动访问此文件,但它作为私钥的默认文件提供。ssh 将在尝试登录时读取此文件。

~/.ssh/id_dsa.pub
包含用于身份验证的协议版本 2 DSA 公钥。该文件的内容应添加到用户希望使用公钥身份验证登录的所有机器上的~/.ssh/authorized_keys中。无需将此文件的内容保密。

~/.ssh/id_rsa
包含用户的协议版本 2 RSA 认证身份。除用户外,任何人都不应读取此文件。生成密钥时可以指定密码;该密码将用于使用 3DES 加密此文件的私有部分。ssh-keygen不会自动访问此文件,但它作为私钥的默认文件提供。ssh 将在尝试登录时读取此文件。

~/.ssh/id_rsa.pub
包含用于身份验证的协议版本 2 RSA 公钥。该文件的内容应添加到用户希望使用公钥身份验证登录的所有机器上的~/.ssh/authorized_keys中。无需将此文件的内容保密。

/etc/ssh/moduli
包含用于 DH-GEX 的 Diffie-Hellman 组。

环境

   SSH_USE_STRONG_RNG

OpenSSL随机生成器的重新播种通常在/dev/urandom中完成。如果SSH_USE_STRONG_RNG环境变量设置为0以外的值,OpenSSL随机生成器将从/dev/random重新设定种子。读取的字节数由SSH_USE_STRONG_RNG值定义。最小为6个字节。不建议在没有硬件随机生成器的计算机上使用此设置,因为熵不足会导致连接被阻塞,直到有足够的熵可用。
Don’t strive for, then you are not even qualified to fail!

SSH-KeyGen -认证密钥的生成、管理和转换相关推荐

  1. 【SSH】SSH 免密码登录配置|Secure Shell 免密认证登录|linux 生成密钥

    目录 LINUX SSH免密登录 即看即用 详细说明 免密登录原理 Secure Shell 免密认证登录 linux 生成密钥 windows 生成密钥 目录 LINUX SSH免密登录 即看即用 ...

  2. 项目管理 之七 SSH、GPG 密钥生成步骤、部署 Github、Gitee 及使用效果

      最近有需要在 Github 上配置 SSH 和 GPG,因此,将过程记录下来形成本文.没啥技术含量,就是一个记录.我这里使用的主机环境是 Ubuntu 22.04 LTS 和 Windows 22 ...

  3. 多密钥ssh-key生成与管理

    由于 git 大文件用 http 方式难以传输,必须使用 ssh-key,而 ssh-key 又生成了好多个.最近在各种折腾 ssh,公钥私钥上花费了很多时间,现将一些问题总结如下.系统为 Mac/L ...

  4. ubuntu ssh密钥_生成SSH密钥以在Ubuntu中进行无密码登录

    ubuntu ssh密钥 SSH (Secure Shell) is a cryptographic network protocol which is used for establishing s ...

  5. SSH无需密码密钥登录

    2019独角兽企业重金招聘Python工程师标准>>> 无密码ssh登录的主要操作简单概述为,将本机中的ssh密钥对中的公钥如id_rsa.pub拷贝到目标机器的ssh验证文件aut ...

  6. ssh 安全配置 以及ssh key 认证登录

    一.什么是 SSH ? SSH全称(Secure SHell)是一种网络协议,顾名思义就是非常安全的shell,主要用于计算机间加密传输.早期,互联网通信都是基于明文通信,一旦被截获,内容就暴露无遗. ...

  7. SSH的认证终结(无需密码的git操作或者ssh链接无需密码)

    1.PublicKey认证基本原理 Public Key(非对称,asymmetric)认证使用一对相关联的Key Pair(一个公钥Public Key,一个私钥Private Key)来代替传统的 ...

  8. 使用SecureCRT设置linux系统登录的ssh公钥认证

    使用SecureCRT设置linux系统登录的ssh公钥认证 linux系统环境:CentOS 5.8 1.修改ssh配置文件/etc/ssh/sshd_config RSAAuthenticatio ...

  9. 灵活使用ssh、dsh和pssh高效管理大量计算机

    云计算当前非常热门,但是每个计算云都有一项要求:硬件和软件都需要非常细心地维护.本文介绍如何从命令行通过ssh.dsh和pssh工具管理许多计算机. 云在根本上是由硬件和软件组成的,这些组件需要经常细 ...

  10. linux SecureCRT ssh key认证登陆

    通过SecureCRT创建key登录认证 一.生成公钥/密钥对 使用SecureCRT的    工具->创建公钥 即可,加密算法选择RSA,因为sshd配置文件中选择了RSA算法 这一步中,通行 ...

最新文章

  1. 我的WCF之旅(13):创建基于MSMQ的Responsive Service
  2. JAVA面对对象(一)——封装
  3. 向Access中插入数据报“INSERT INTO 语句的语法错误” 解决
  4. [工作积累] UE4 TAA ReProjection的精度处理
  5. python 购物车程序_购物车程序python
  6. Java编程语言基础 第三章 实现会员信息录入功能
  7. c语言 和 运算顺序,二 如何学习C语言的运算符和运算顺序
  8. 单片机 数字电压表(ADC0809)
  9. 方差分析、T检验、卡方分析如何区分?(转载)
  10. GRUB4DOS 0.4.5c 2014-01-17.问题解决
  11. arduino和单片机的区别是什么
  12. 学校计算机机房解说词,学校会议室解说词.doc
  13. 密码管理神器-1Password,安全与否?
  14. Tensorflow 优化器(optimizer)
  15. 闵帆老师《论文写作》心得体会
  16. 我叫mt4最新服务器,我叫MT4手游开服表_我叫MT4手游开服时间表_新服新区预告_第一手游网...
  17. Bios工程师手边事—SBIOS添加EC功能
  18. css点击字变颜色_使用CSS颜色关键字
  19. timestamp变成×tamp问题
  20. 一行一行的读取txt中文文本(解决乱码问题)

热门文章

  1. linux sed -i 命令
  2. 抛出异常关键字throw与定义异常关键字throws
  3. MyBioSource 丨艾美捷抗C17ORF75抗体:兔C17ORF75多克隆抗体
  4. Docker —— 从入门到实践
  5. 【产品】什么是虚位密码及其用途
  6. [转]伽利略卫星导航系统2019年7月14日起的宕机事件
  7. 微信公众号发送客服消息---菜单消息,卡片消息
  8. 对称算法与非对称算法
  9. POJ 3088 Push Botton Lock 笔记
  10. 离职创业三年后,我来谈谈我的感受