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

生成ssh密钥,使用ssh连接linux系统客户端 服务器都可以生成 但是要考虑传输方便和安全问题根据自己的使用情况密钥传输 怎么方便怎么来 一对一 一台 PC 连接一台 Linux 服务器 我喜欢在 PC 上生成 在传密钥给 Linux

大家好,欢迎来到IT知识分享网。

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(公钥文件)

公钥(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:00 C:\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服务端:快速连接

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

示例:

Host al HostName 47.95.178.146 User root IdentityFile ~/.ssh/al Port 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.146 Welcome 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 al Welcome to XiaoKang's world! Last login: Fri May 31 23:54:52 2024 from 116.249.141.191 [root@iZ2ze56a8gwg4w4scwap4qZ ~]# 

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

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/121755.html

(0)
上一篇 2025-10-21 17:45
下一篇 2025-10-21 18:10

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信