生成ssh密钥,使用ssh连接linux系统

这里写目录标题

  • ssh密钥大概介绍
    • 1、密钥在哪里生成(客户端/服务器)?
    • 2、密钥生成是什么样子的?
  • ssh (生成密钥、密钥传输、配置连接、连接服务)过程
    • 1、生成密钥
      • 提示一:输入保存密钥的文件:Enter file in which to save the key
      • 提示二、输入密码短语:Enter passphrase (empty for no passphrase)
      • 1.3、生成密钥提示:Enter same passphrase again
      • 1.4、生成密钥提示:Passphrases do not match. Try again
    • 2、密钥传输
      • 方法一:使用 SSH 拷贝公钥到远程服务器(适用于Mac、Linux电脑)
        • 1.使用以下命令将本地公钥复制到远程服务器:
        • 2.如果你的服务器端口不是默认的 22 端口,可以使用 -p 参数指定端口号:
      • 方法二:手动上传公钥到服务器(适用于Windows、Mac及linux电脑)
        • 1.使用 scp 命令传输密钥
    • 3、配置连接
      • 检查一:linux服务端:是否开启密钥连接
        • 情况1:【空白】
        • 情况2:PubkeyAuthentication no
        • 情况3:#PubkeyAuthentication yes
      • 检查二:linux服务端:公钥文件位置是否正确
        • 情况1:【空白】
        • 情况2:AuthorizedKeysFile
        • 情况3:#AuthorizedKeysFile .ssh/authorized_keys
        • 情况4:AuthorizedKeysFile .ssh/abcdef/authorized_keys
      • (可选)配置一:PC服务端:快速连接
    • 3、连接服务
      • 方法一:使用ssh -i 密钥连接
      • 方法一:使用ssh config快速连接

ssh密钥大概介绍

1、密钥在哪里生成(客户端/服务器)?

客户端/服务器都可以生成,但是要考虑传输方便和安全问题
根据自己的使用情况密钥传输,怎么方便怎么来,

  • 一对一:一台PC连接一台Linux服务器,我喜欢在PC上生成,在传密钥给Linux。你也可以在Linux生成然后传回来
  • 一对多:如果一台PC访问多台Linux服务器,就在PC上生成密钥对,这样就可以使用同一密钥对访问所有服务器。
  • 多对一:如果一台Linux服务器,多个PC端需要连接这台服务器,那么你可以在这台Linux服务器上生成密钥对
  • 多对多:拆分成一对多 噜噜噜~~

2、密钥生成是什么样子的?

ssh (生成密钥、密钥传输、配置连接、连接服务)过程

1、生成密钥

这里我用测试的Linux服务器来演示,每次生成会产生一个公钥和一个私钥,两个密钥是一对相互关联组成的

公钥(public key):公钥用于加密数据或验证签名,一般存储在远程服务器上进行身份验证。

私钥(private key):私钥用于解密数据或生成数字签名,一般存储在PC端进行连接,并且必须严格保密。

ssh-keygen 命令有多个可选选项,其中一些常用选项包括:

  • -t:指定要生成的密钥类型,如 rsa、dsa、ecdsa、ed25519 等。
  • -b:指定生成密钥的位数,通常用于RSA密钥,如 -b 2048。
  • -C:在生成密钥时添加注释,可用于识别密钥的用途或所有者。
  • -f:指定生成密钥的文件路径和名称。
  • -N:设置用于保护私钥的密码,可以为空。
  • -q:静默模式,减少输出信息。
  • -y:从私钥中提取公钥并打印到标准输出。
  • -h:显示命令的使用帮助信息。

输入下面命令就会生成(公钥和私钥)

ssh-keygen

最终生成完是这样的👇

C:\Users\17569\Desktop\ssh>ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\17569/.ssh/id_rsa): 47.95.178.146
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in 47.95.178.146.
Your public key has been saved in 47.95.178.146.pub.
The key fingerprint is:
SHA256:ST7ke0dkXzI5UvM1KKqEABT39KTRs239D70eyTlYWmg 17569@xk-Lenovo
The key's randomart image is:
+---[RSA 3072]----+
|.+o. o..      +..|
|  ..o =o   . o +o|
|    .o..* o = = o|
|     . B = + o.= |
|      . S   oEoo |
|       . o ..o*.o|
|        . . .oo*.|
|         . .   oo|
|              .. |
+----[SHA256]-----+C:\Users\17569\Desktop\ssh>

可能看到一些提示,如果没有就跳过


提示一:输入保存密钥的文件:Enter file in which to save the key

让我们输入生成密钥的名称,我这里输入我的服务器IP方便记住

Enter file in which to save the key (C:\Users\17569/.ssh/id_rsa): 47.95.178.146
翻译:
输入保存密钥的文件(C:\Users\17569/.ssh/id_rsa): 47.95.178.146

提示二、输入密码短语:Enter passphrase (empty for no passphrase)

让我们输入密码短语以增加安全性,也可以直接按回车键跳过密码短语,输入密码短语是不显示字符的哦

不建议输入,如果输入密码短语,每次使用密钥连接都需要在输入密码短语确认
不建议输入,如果输入密码短语,每次使用密钥连接都需要在输入密码短语确认
不建议输入,如果输入密码短语,每次使用密钥连接都需要在输入密码短语确认

Enter passphrase (empty for no passphrase):
翻译:
输入密码短语(空表示无密码短语):

1.3、生成密钥提示:Enter same passphrase again

输入两次,确保密码短语是正确的,在操作中输入不一致就提示:密码不匹配。再试一次。

Enter same passphrase again:
翻译:
再次输入相同的密码:

1.4、生成密钥提示:Passphrases do not match. Try again

输入两次密码短语是错误的,注意大小写和数字键盘是否开启

Passphrases do not match.  Try again.
翻译:
密码不匹配。再试一次。

2、密钥传输

生成后在执行的当前目录下会生成两个文件
默认路径如下:

  • windows电脑对应的路径为:C:\Users\你的用户名.ssh
  • MAC/linux对应的路径为:~/.ssh

生成的密钥对有两个文件:id_rsa(私钥文件)和 id_rsa.pub(公钥文件)

私钥:47.95.178.146
公钥:47.95.178.146.pub

公钥(public key):公钥用于加密数据或验证签名,一般存储在远程服务器上进行身份验证。

私钥(private key):私钥用于解密数据或生成数字签名,一般存储在PC端进行连接,并且必须严格保密。

在这里插入图片描述

方法一:使用 SSH 拷贝公钥到远程服务器(适用于Mac、Linux电脑)

1.使用以下命令将本地公钥复制到远程服务器:

然后会要求你输入密码,就会将公钥自动添加到远程服务器的 ~/.ssh/authorized_keys 文件中

ssh-copy-id 连接用户名@服务器ip

2.如果你的服务器端口不是默认的 22 端口,可以使用 -p 参数指定端口号:
ssh-copy-id -p 28256 连接用户名@服务器ip

方法二:手动上传公钥到服务器(适用于Windows、Mac及linux电脑)

1.使用 scp 命令传输密钥

这样也可以把 复制到远程服务器的 ~/.ssh/authorized_keys 文件中。

scp 公钥文件名.pub 连接用户名@服务器ip:~/.ssh/authorized_keys

示例:

scp 47.95.178.146.pub root@47.95.178.146:~/.ssh/authorized_keys

成功如下👇

C:\Users\17569\Desktop\ssh>scp 47.95.178.146.pub root@47.95.178.146:~/.ssh/authorized_keys
root@47.95.178.146's password: [此处输入密码,密码已隐藏]
47.95.178.146.pub                                                     100%  570     9.3KB/s   00:00C:\Users\17569\Desktop\ssh>

3、配置连接

检查一:linux服务端:是否开启密钥连接

使用下面命令检查是否开启密钥连接,如果没有或者前面有个#都不行

cat  /etc/ssh/sshd_config | grep PubkeyAuthentication
情况1:【空白】
使用vim写入
情况2:PubkeyAuthentication no
使用 vim 改成 yes
情况3:#PubkeyAuthentication yes
使用 vim 去除 “#” 号

正确情况如下👇

[root@iZ2ze56a8gwg4w4scwap4qZ ~]# cat  /etc/ssh/sshd_config | grep PubkeyAuthentication
PubkeyAuthentication yes[root@iZ2ze56a8gwg4w4scwap4qZ ~]#

检查二:linux服务端:公钥文件位置是否正确

使用下面命令检查是否开启密钥连接

cat  /etc/ssh/sshd_config | grep AuthorizedKeysFile
情况1:【空白】
使用vim写入
情况2:AuthorizedKeysFile
使用 vim 添加路径 .ssh/authorized_keys
情况3:#AuthorizedKeysFile .ssh/authorized_keys
使用 vim 去除 “#” 号
情况4:AuthorizedKeysFile .ssh/abcdef/authorized_keys
使用 vim 修改文件里面的路径 或者 把密钥文件移动位置

正确情况如下👇

[root@iZ2ze56a8gwg4w4scwap4qZ ~]# cat  /etc/ssh/sshd_config | grep AuthorizedKeysFile
AuthorizedKeysFile .ssh/authorized_keys[root@iZ2ze56a8gwg4w4scwap4qZ ~]#

(可选)配置一:PC服务端:快速连接

打开目录:C:\Users\你的用户名.ssh
创建一个文件:config,下面是内容👇

Host 连接名称HostName 服务器ipUser 连接用户名IdentityFile ~/.ssh/id_rsa[密钥位置]Port 22

示例:

Host alHostName 47.95.178.146User rootIdentityFile ~/.ssh/alPort 22

3、连接服务

方法一:使用ssh -i 密钥连接

ssh -i 密钥文件位置 连接用户名@服务器ip

示例:

ssh -i id_rsa root@47.95.178.146

连接示例:

C:\Users\17569\Desktop\ssh>ssh -i 47.95.178.146 root@47.95.178.146Welcome to XiaoKang's world!
Last login: Fri May 31 23:30:10 2024 from 116.249.141.191
[root@iZ2ze56a8gwg4w4scwap4qZ ~]# 

方法一:使用ssh config快速连接

使用在 “config” 文件中配置的连接名称直接连接

ssh 连接名称

示例:

ssh al

连接示例:

C:\Users\17569\Desktop\ssh>ssh alWelcome to XiaoKang's world!
Last login: Fri May 31 23:54:52 2024 from 116.249.141.191
[root@iZ2ze56a8gwg4w4scwap4qZ ~]#

参考原文链接:https://blog.csdn.net/qq_41308872/article/details/138306315

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/343619.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JVM 虚拟机

JVM 是 Java Virtual Machine 的简称,意为 Java 虚拟机,虚拟机是指通过软件模拟的具有完整硬件功能的、运行在一个完全隔离的环境中的完整计算机系统。 常见的虚拟机有:JVM、VMwave、Virtual Box等。JVM 是一台被定制过的现实当中不存在的计算…

在keil5中打开keil4工程的方法

文章目录 1. 打开文件 2. 安装旧版本包 3. 在keil4中打开keil5工程 1. 打开文件 在keil5 MDK的环境下,打开keil4的工程文件,会弹出下图所示的窗口: 参考官网的解释这两个方法分别为: 1. 使用MDK 版本 4 Legacy Pack时&#x…

在推荐四款软件卸载工具,让流氓软件无处遁形

Revo Uninstaller Revo Uninstaller是一款电脑软件、浏览器插件卸载软件,目前已经有了17年的历史了。可以扫描所有window用户卸载软件后的残留物,并及时清理,避免占用电脑空间。 Revo Uninstaller可以通过命令行卸载软件,可以快速…

【C++ | 拷贝构造函数】一文了解C++的 拷贝(复制)构造函数

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 ⏰发布时间⏰:2024-06-07 2…

链表题目练习----重排链表

这道题会联系到前面写的一篇文章----快慢指针相关经典问题。 重排链表 指针法 这道题乍一看,好像有点难处理,但如果仔细观察就会发现,这道题是查找中间节点反转链表链表的合并问题,具体细节有些不同,这个在反装中间链…

如何有效提问?

有效提问:正确地向别人提问是一种艺术,可以帮助你获得清晰、有用的答案。 明确表达问题:确保你的问题清晰明了,避免含糊不清或模棱两可的语言。这可以帮助对方更好地理解你的问题,并给出准确的答复。 尊重对方&#x…

毕业论文word常见问题

0、前言: 这里的问题都是以office办公软件当中的word为例,和WPS没有关系。 1、页眉横线删不掉: 解决方案:进入页眉编辑状态,在开始选项栏中选择页眉字体样式,清除格式。 修改方式如下: 2、…

社区服务支持

社区服务支持 原创 小王搬运工 时序课堂 2024-06-07 19:29 四川 🌟 邀请函 | 加入我们的时序数据挖掘社区 🚀 尊敬的数据爱好者们, 我们诚挚地邀请您加入我们的专业社区——时序数据挖掘社区,一个专注于时序数据分析、挖掘与应…

QT 信号和槽 多对一关联示例,多个信号,一个槽函数响应,多个信号源如何绑定一个槽函数

三个顾客 Anderson、Bruce、Castiel 都要订饭,分别对应三个按钮,点击一个按钮,就会弹出给该顾客送饭的消息。注意这个例子只使用一个槽函数,而三个顾客名称是不一样的,弹窗时显示的消息不一样,这需要一些 技…

什么情况下要配置DNS服务

什么是DNS 一、DNS就是域名解析 我们上网的方式通常都由ip地址组成,但是为了有个规范,而且我们也不可能去记住那么多一串Ip数字,首先域名就会比ip好记很多,其次固定性,一旦服务器换了,只要重新绑定域名对…

【Flutter】 TextField限制长度时, 第三方手写输入法、ios原始拼音输入法输入被吞问题

问题描述 TextField限制长度时, 当你的输入字符长度已经到了最大值-1时,使用第三方手写输入法或者ios原生拼音输入法输入liang(什么拼音都行,这里只是举例),输到i那么li都会消失。 原因分析 这是因为第三…

C++青少年简明教程:C++函数

C青少年简明教程:C函数 C函数是一段可重复使用的代码,用于执行特定的任务,可以提高代码的可读性和可维护性。函数可以接受参数(输入)并返回一个值(输出),也可以没有参数和返回值。 …

Nvidia/算能 +FPGA+AI大算力边缘计算盒子:中国舰船研究院

中国舰船研究院又称中国船舶重工集团公司第七研究院,隶属于中国船舶重工集团公司,是专门从事舰船研究、设计、开发的科学技术研究机构,是中国船舶重工集团公司的军品技术研究中心、科技开发中心;主要从事舰船武器装备发展战略研究…

【spring】第一篇 IOC和DI入门案例

Spring到底是如何来实现IOC和DI的,那接下来就通过一些简单的入门案例,来演示下具体实现过程。 目录 前期准备 一、IOC入门案例 思路分析 代码实现 二、DI入门案例 思路分析 代码实现 总结 前期准备 使用IDEA创建Maven项目,首先需要配…

实验11 OSPF协议配置

实验11 OSPF协议配置 一、OSPF单区域配置(一)原理描述(二)实验目的(三)实验内容(四)实验配置(五)实验步骤 二、OSPF多区域配置(一)原理…

环 境 变 量

如果希望某一个文件在 CMD 窗口的任意路径下都可以打开,则需要将该文件的路径存放在环境变量中。 在 CMD 中运行该文件时,优先查看当前路径下的文件,如果没有找到,则进入环境变量中记录的路径下寻找该文件,如果能找到…

泛微开发修炼之旅--10基于Ecology实现附件上传,并将上传后的文件id存入表单附件控件中的示例及源码

文章链接:泛微开发修炼之旅--10基于Ecology实现附件上传,并将上传后的文件id存入表单附件控件中的示例及源码

2024年人力资源与社会治理国际会议(ICHRSG 2024)

2024年人力资源与社会治理国际会议 2024 International Conference on Human Resources and Social Governance 会议简介 2024年人力资源与社会治理国际会议是一个聚焦全球人力资源发展与社会治理创新的高端交流平台。本次会议汇集了全球顶尖的专家学者、企业高管和政策制定者&…

二轴机器人大米装箱机:技术创新引领智能包装新潮流

在科技日新月异的今天,自动化和智能化已成为各行各业追求高效、精准生产的关键。作为粮食加工行业的重要一环,大米装箱机的技术创新与应用价值日益凸显。其中,二轴机器人大米装箱机以其高效、稳定、智能的特点,成为市场的新宠。星…

深入理解feign远程调用的各种超时参数

1. 引言 在spring cloud微服中,feign远程调用可能是大家每天都接触到东西,但很多同学却没咋搞清楚这里边的各种超时问题,生产环境可能会蹦出各种奇怪的问题。 首先说下结论: 1)只使用feign组件,不使用ribbion组件&…