Linux 命令(208)—— ssh-keygen 命令
文章目录
- 1.命令简介
- 2.命令格式
- 3.选项说明
- 4.常用示例
- 5.authorized_keys 和 known_hosts
- 参考文献
1.命令简介
ssh-keygen 是 OpenSSH 身份验证密钥实用工具。
ssh-keygen 用于 OpenSSH 身份验证密钥的生成、管理和转换,它支持 RSA 和 DSA 两种认证密钥。
2.命令格式
ssh-keygen [OPTIONS] <file>...
3.选项说明
-b <bits>指定密钥长度。
-e读取 OpenSSH 的私钥或者公钥文件。
-C添加注释。
-f <filename>指定用来保存密钥的文件名。
-i读取未加密的 ssh-v2 兼容的私钥/公钥文件,然后在标准输出设备上显示 openssh 兼容的私钥/公钥。
-l显示公钥文件的指纹数据。
-N提供一个新密语。
-P <passphrase>提供(旧)密语。
-q静默模式。
-t指定要创建的密钥类型。
4.常用示例
(1)创建一个默认密钥。
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
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
/root/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:nTaoqOxlG6IQQ2zDTMvSk2EON+4tLrYqPy7IBrstoy4 root@localhost.localdomain
The key's randomart image is:
+---[RSA 2048]----+
|..= |
|*B.+ |
|.X* |
|+..o o . |
|o o . S = |
|.+ . . . . . |
|*oo = . |
|EBo= o |
|%@B.. |
+----[SHA256]-----+
(3)指定密钥的类型并添加注释。
ssh-keygen -t rsa -C "dablelv@qq.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
/root/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:Wx3MWwj36fwhcnb6hjdIIJ3SUggCLcmFq62Earqy2E0 deng@qq.com
The key's randomart image is:
+---[RSA 2048]----+
| ..*o .. o . |
| = .. . * o . |
| o + * + |
| . + * * |
|. o S =.++oo |
|.o . o +.+..|
|o . E . ..o .|
|++ o o.+ |
|Oo. . o..|
+----[SHA256]-----+
(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:
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
SSH_KNOWN_HOSTS FILE FORMAT
一文读懂authorized_keys和known_hosts_游语的博客-CSDN博客
SSH known_hosts / authorized_keys 的解释 - CSDN
Linux 命令(208)—— ssh-keygen 命令相关推荐
- Linux使用SSH上传下载文件,Linux下通过ssh scp命令上传下载文件
Linux下通过ssh scp命令上传下载文件. 1.上传本地文件到服务器 scp /path/filename username@servername:/path/ 例如 scp /var/tale ...
- 香橙派可以运行linux,如何使用SSH远程命令登录香橙派开发板
香橙派Orange Pi 系列开发板是开源的单板电脑,新一代的arm开发板,可以运行Android.Ubuntu.Debian等操作系统.CPU使用全志H2.H3.H6.RK3399等芯片,拥有多种内 ...
- linux ssh注册码,linux ssh -l 命令运用
ssh是远程登录命令,-l选项是最常用的选项,下面是我的一些总结 远程登录:ssh -l userName ip # 远程登录到 10.175.23.9 ssh -l root2 10.175. ...
- unity连接linux服务器,C#编程之C#通过SharpSSH库与Linux服务器建立SSH连接并执行命令...
本文主要向大家介绍了C#编程之C#通过SharpSSH库与Linux服务器建立SSH连接并执行命令,通过具体的内容向大家展示,希望对大家学习C#编程有所帮助. 在Unity3D项目开发工具时需要用到S ...
- linux screen 命令是 ssh 的有效补充
linux -- screen 命令是 ssh 的有效补充 有时候会有这样的问题,当在公司服务器上打开了一个终端,做了很多事情,或正开着某个服务程序,下班回家了. 突然有事需要接入到服务器,如果用 s ...
- linux远程连接telnet命令,Linux中的ssh,ping,ftp,telnet远程登录及通信相关的命令...
本节,我们将介绍一些和Linux系统远程登录及通信相关的命令. SSH命令 SSH(Secure Shell即安全的Shell)可以登录和操作远程操作系统,它会建立一个安全的连接,将通信数据进行加密, ...
- linux ssh ip地址命令,关于Linux:在ssh会话中查找客户机的IP地址
我有一个脚本,由使用ssh登录到服务器的人运行. 有没有办法自动找出用户连接的IP地址? 当然,我可以问用户(这是一个程序员的工具,所以没问题),但如果我刚刚发现的话,会更酷. 建议转到服务器故障,不 ...
- linux系统中ssh命令,Linux系统中SSH 命令的用法有哪些?
今天小编要跟大家分享的文章是关于Linux系统中SSH命令的用法有哪些?一个系统管理员可能会同时管理着多台服务器,这些服务器也许会放在不同的地方.要亲自一台一台的去访问来管理它们显然不是最好的方法,通 ...
- 【Linux】SSH相关命令
[Linux]SSH相关命令 关于SSH SSH 为 Secure Shell 的缩写,SSH 为建立在应用层和传输层基础上的安全协议. SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性 ...
- 学习Linux命令:关于ssh命令
1.查看SSH客户端版本 有的时候需要确认一下SSH客户端及其相应的版本号.使用ssh -V命令可以得到版本号.需要注意的是,Linux一般自带的是OpenSSH: 下面的例子即表明该系统正在使用Op ...
最新文章
- python和R对dataframe的单列数据进行统计:value_counts、table、unique、nunique、min、max、mean、sort、length、var、quantile、
- Rocketmq基于docker部署并在Springboot中接入
- Xcode 6.3 Ineligible Devices 临时解决方法
- Python 实用技巧之正则表达式查找和替换文本的操作方法
- 如何打造顶级目标检测算法?百度官方揭秘 ECCV2020 双料冠军的理论与实践
- 【博客项目】—案例初始化(二)
- 为什么rand()+ rand()产生负数?
- Python语言为什么被称为高级程序设计语言?
- Linux安装dos环境,Ubuntu安装dos2unix工具
- 如何用html实现图片轮播,怎么单纯的用html+css实现图片轮播?
- 大学计算机基础技能论文,计算机基础论文,关于关于大学计算机基础教学相关参考文献资料-免费论文范文...
- 中科院计算所是怎样的存在?院校详情大盘点!
- Linux固态硬盘 设置写入缓存,Win10下的写入缓存策略严重影响SSD硬盘的性能!
- 3.Go语言中常量,变量, 及其命名规则以及代码风格
- 搞定检索式对话系统的候选response检索--使用pysolr调用Solr
- 水果忍者VR原型 二
- Vue中使用SVG-ICON
- 如何在未越狱的ios系统安装ipa文件
- 初学者如何学好编程?
- 华为西安,中兴西安——近况
热门文章
- 用批处理文件实现同步到个人时间服务器,局域网内时间同步net time的使用
- d3带箭头和点击事件的力导向关系图
- Arduino与Proteus仿真实例-TFT显示屏(ILI9341驱动器)SPI驱动仿真
- 洛谷 P3426 [POI2005]SZA-Template
- 系统分析实验 Python
- 用Java写一个PC端的WIFI-ADB管理软件
- navigationview菜单项点击之后跳转_饿了么、美团外卖等小程序APPID和跳转PATH获取...
- Windows 10免费原生打开HEIC格式的图片(无需转换,直接用照片打开)
- 联想T440怎么把原装Win8或Win10换成Win7系统
- 【POI2004】【Bzoj2069】T2 洞穴 zaw