ssh-keygen(1) command

这篇具有很好参考价值的文章主要介绍了ssh-keygen(1) command。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


大咖好呀,我是恋喵大鲤鱼。

!!! 我的第二本开源书籍《后台开发命令365》上线啦,欢迎大家协同共建。

1.命令简介

ssh-keygen 是 OpenSSH 身份验证密钥实用工具。

ssh-keygen 用于 OpenSSH 身份验证密钥的生成、管理和转换,它支持 RSA 和 DSA 两种认证密钥。

2.命令格式

ssh-keygen [OPTIONS] FILE...

3.选项说明

下面只列出常用的选项,更多选项可参考手册。

-b BITS
	指定密钥长度。
-e
	读取私有或公共 OpenSSH 密钥文件并以 -m 选项指定的格式之一将密钥打印到标准输出。
-C
	添加注释。
-f FILENAME
	指定用来保存密钥的文件名。
-i-m 选项指定的格式读取未加密的私钥(或公钥)文件,并将 OpenSSH 兼容的私钥(或公钥)打印到 stdout。
-l
	显示公钥文件的指纹数据。
-m KEY_FORMAT
	为 -i(导入)或 -e(导出)转换选项指定密钥格式。支持的密钥格式为:“RFC4716”(RFC 4716/SSH2 公钥或私钥)、“PKCS8”(PEM PKCS8 公钥)或“PEM”(PEM 公钥)。 默认转换格式为“RFC4716”。
-N
	提供一个新密语。
-P PASSPHRASE
	提供(旧)密语。
-q
	静默模式。
-t
	指定要创建的密钥类型。可能的值为“dsa”、“ecdsa”、“ecdsa-sk”、“ed25519”、“ed25519-sk”或“rsa”。
-y
	从 OpenSSH 格式的私钥导出公钥。

4.常用示例

(1)创建一个默认密钥,缺省为 RSA 类型的密钥。

ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/lighthouse/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/lighthouse/.ssh/id_rsa.
Your public key has been saved in /home/lighthouse/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:c8jkpkXgRqqfelFHKxq956d+6qYzAR0kHgnaVs9gtYw lighthouse@VM-0-3-centos
The key's randomart image is:
+---[RSA 2048]----+
|  ..*+=          |
| o +.%.o.        |
|. o EoBoo.       |
| . .o.==o.       |
|  .  = +S .      |
|   .o.o+.o       |
|    o..+         |
|   .. o o o      |
|  ..  .B==       |
+----[SHA256]-----+

中途需要三次确认,全部缺省直接回车即可。

完成后,在 ~/.ssh 目录下将会看到两个文件:

ls -l ~/.ssh
id_rsa  id_rsa.pub

id_rsa 为当前主机的私钥。id_rsa.pub 为当前主机的公钥。

(2)指定要创建的密钥类型,缺省为 RSA。

ssh-keygen -t rsa

(3)指定密钥的类型并添加注释。

ssh-keygen -t rsa -C "dablelv@qq.com"

(4)读取 OpenSSH 的私钥或公钥文件。

ssh-keygen -e
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "2048-bit RSA, converted by lighthouse@VM-0-3-centos from Ope"
AAAAB3NzaC1yc2EAAAADAQABAAABAQDb1aKBbvfSefnuzLfhNKlIa4zsbBFG+m7ugZbeBW
RwJXONhSq/AW27+Tq9zDtI6qG+UxmjIorVHbAVl4llVZz8e5b/s5I0yiBoLy/RokpvisNB
kVkWl2oNGtkdHxTSYcJ3jdbTZ+ya6MyOiaMt24jV+zxxS1BXWxA14kS/JqiMC7lx9Vu0Ed
AHY0zq2dj+pX31FB7Xs7p98eO+Est6msCGIInIpzGTlTskL6m7B+aMBaquWlEyQAmRX5G8
YoOFw+aDT4q1aaaaBkFdcy/nhHPpbfM8eIzbAv+khHRjZV8XQCo+UeHzme8nmfWDCWwKZ8
TnpO239diTdl2Wps2YCMex
---- END SSH2 PUBLIC KEY ----

(5)安静模式生成密钥对。

ssh-keygen -q -t rsa
Enter file in which to save the key (/home/lighthouse/.ssh/id_rsa): 
/home/lighthouse/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase): 
Enter same passphrase again:

(6)从 RSA 私钥导出公钥。

ssh-keygen -y [-f PRV_KEY_FILE]

如果不通过 -f 选项指定私钥文件,则以交互方式指定。

(7)将 OpenSSH 格式公钥转换成 OpenSSL 的 PKCS#1 格式公钥。

ssh-keygen -e -m PEM -f id_rsa.pub > rsa_pub_key.pem

(8)将 OpenSSL 的 PKCS#8 格式公钥转换成 OpenSSH 的格式公钥。

ssh-keygen -i -m PKCS8 -f rsa_pub_key.pem > id_rsa.pub

5.authorized_keys 和 known_hosts

有时,你在 ~/.ssh 目录下可能还会看到 authorized_keys 和 known_hosts 这两个文件。

  • authorized_keys

如果当前主机是 SSH 服务端,那么会有 authorized_keys,用来存放客户端机器的公钥。

我们需要本地机器通过 SSH 访问远程服务器时为了减少输入密码的步骤,基本上都会在本地机器生成 SSH 公钥,然后将本地 SSH 公钥复制到远程主机的 ~/.ssh/authorized_keys 中,这样就可以免密登录了。

  • known_hosts

如果当前主机为 SSH 客户端,你可能会在 ~/.ssh 目录下看到 known_hosts 文件,该文件用来记录连接过的远程主机。

known_hosts 文件每行记录一个连接过的远程服务器的公钥。

文件中的每一行都包含以下字段:标记符(可选)、主机名、公钥类型、base64 编码的公钥、注释。字段之间用空格分隔。

如果是首次连接某个远程主机,那么会有安全提示是否继续连接。

The authenticity of host '0.0.0.0 (0.0.0.0)' can't be established.
ECDSA key fingerprint is SHA256:xxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

另外,在 /etc/ssh 目录下也可能会有 ssh_known_hosts 来保存一些对所有用户都可信赖的远程主机信息。


参考文献

ssh-keygen(1) — Linux manual page - man7.org
PKI - 语法[ASN.1]、规范[PKCS、X.509]、编码[DER、PEM]
SSH_KNOWN_HOSTS FILE FORMAT
一文读懂authorized_keys和known_hosts_游语的博客-CSDN博客
SSH known_hosts / authorized_keys 的解释 - CSDN文章来源地址https://www.toymoban.com/news/detail-634340.html

到了这里,关于ssh-keygen(1) command的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux ssh 命令详解

    openssh套件中的客户端连接工具 ssh命令 是openssh套件中的客户端连接工具,可以给予ssh加密协议实现安全的远程登录服务器。 语法 选项 参数 远程主机:指定要连接的远程ssh服务器; 指令:要在远程ssh服务器上执行的指令。 实例 背后故事 英文:Tatu Ylonen 编译:Linux中国/ken

    2024年02月08日
    浏览(36)
  • Linux 命令(212)—— ssh-add 命令

    大咖好呀,我是恋喵大鲤鱼。 鄙人第二本开源书籍《后台开发命令365》上线啦,欢迎大家协同共建。 ssh-add 将私钥身份添加到 OpenSSH 身份验证代理,从而提高 ssh(1) 的认证速度。 ssh-add 向认证代理 ssh-agent(1) 添加私钥身份。当不带参数运行时,它将添加如下文件: 加载私钥后

    2024年02月05日
    浏览(31)
  • linux命令之ssh详解

    openssh套件中的客户端连接工具 Linux在线工具:linux命令在线工具 个人博客网站:博客 Java17中文文档:JDK17中文手册 Gradle8.1.1中文文档:Gradle中文文档 ssh命令 是openssh套件中的客户端连接工具,可以给予ssh加密协议实现安全的远程登录服务器。 语法 选项 参数 远程主机:指定

    2024年02月09日
    浏览(34)
  • 【Linux命令详解 | ssh命令】 ssh命令用于远程登录到其他计算机,实现安全的远程管理

    在编程和系统管理领域,远程管理是一项至关重要的任务。SSH(Secure Shell)命令是一种加密的网络协议,它提供了一种安全的方式,使您能够在不同的计算机之间进行远程连接和管理。通过使用SSH命令,您可以在远程计算机上执行命令、传输文件以及进行安全的远程登录。

    2024年02月12日
    浏览(46)
  • Linux 命令(210)—— ssh-copy-id 命令

    大咖好呀,我是恋喵大鲤鱼。 鄙人第二本开源书籍《后台开发命令365》上线啦,欢迎大家协同共建。 ssh-copy-id 使用本地可用的密钥授权登录远程计算机。 ssh-copy-id 可以把本地主机的公钥复制到远程主机的 authorized_keys 文件上。ssh-copy-id 也会给远程主机的用户主目录(home)和

    2024年02月12日
    浏览(42)
  • 第一章:Linux常用命令+VIM+SSH介绍+SSH密钥登录

    目录 一、Linux常用命令 1)# 与 $ 提示的区别 2)ifconfig 3) su 4) cd 5) 目录查看 6) 查看文件内容 7)创建目录及文件 8)复制和移动 9)其他 10) tar 11) which 12) whereis 13) find 14) chmod 二、vim一般使用 三、SSH介绍 1) 什么是SSH 2)SSH服务端和客户端 3)基本工作机制 四、

    2024年02月13日
    浏览(61)
  • Linux at命令与crond命令,Linux主机之间ssh免密登录

    atd是单一执行的任务管理程序,一个任务管理程序只会执行一次任务 crond是循环性执行好的任务管理程序,例如可以在每年,每月,每天,某个时间段进行执行任务。 前置步骤 1.client创建密钥 2.查看文件 3.发送密钥 4.验证

    2024年02月13日
    浏览(51)
  • Linux远程访问及控制SSH命令

    1.1.1什么是SSH服务器? SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程 复制等功能; SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令; SSH 为建立在应用层和传输层基础上的安全协议。对数据进行压缩,加

    2024年02月03日
    浏览(45)
  • Linux SSH 远程连接主机,并执行命令

    应用场景 当需要远程到另一台Linux上,并在另一台机器上执行 Shell 命令,则需要注意命令的书写格式 示例说明 远程到 192.158.157.47 机器上,并执行命令 cd /tmp ./zabbixagent_install.sh echo Success 1、错误方式 因为命令间用 拼接,表示多条命令是顺序执行,所以, ssh命令和后续的命令

    2024年02月14日
    浏览(49)
  • ssh命令用于远程登录到其他计算机,实现安全的远程管理_linux ssh远程登录命令

    文章标题 简介 一,参数列表 二,使用介绍 1. 连接远程服务器 2. 使用SSH密钥登录 2.1 生成密钥对 2.2 将公钥复制到远程服务器 3. 端口转发 3.1 本地端口转发 3.2 远程端口转发 4. X11转发 5. 文件传输与远程命令执行 5.1 文件传输 5.1.1 从本地向远程传输文件 5.1.2 从远程服务器下载

    2024年04月11日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包