02.Red Hat Linux SSH的钥免密登录

一、切换root用户

以为需要进入root目录创建.ssh文件夹同时也需要root权限来给文件获取最高权限(chmod 777)

命令:

su root

参数解析:

su root :获取root权限

输出结果:

[honkerdynamo@localhost ~]$ su root
密码:
[root@localhost honkerdynamo]#

二、进入root目录创建.ssh文件夹

命令:

cd /root/ && mkdir .ssh && cd .ssh && pwd

cd :切换目录

&& :此符号是串联运行多条命令,也是执行多条命令操作。

mkdir :创建文件夹

pwd:当前目录的全路径

输出结果:

[root@localhost honkerdynamo]# cd /root/ && mkdir .ssh && cd .ssh && pwd
/root/.ssh
[root@localhost .ssh]#

三、生成SSH公钥和密钥

命令1(不带生成路径,仅在当前目录生成公钥和密钥):

ssh-keygen -f HonKer_Red_Linux_8_SSH -t rsa -C "honkerdynamo@gmail.com"

-t type:指定要生成的密钥类型,有rsa1(SSH1),dsa(SSH2),ecdsa(SSH2),rsa(SSH2)等类型,较为常用的是rsa类型。

-C comment:提供一个新的注释(C必须是大写)。

-b bits:指定要生成的密钥长度 (单位:bit),对于RSA类型的密钥,最小长度768bits,默认长度为2048bits。DSA密钥必须是1024bits。

-f filename:指定生成的密钥文件名字可在文件名前添加生成路径。

输出结果:

[root@localhost .ssh]# ssh-keygen -f HonKer_Red_Linux_8_SSH -t rsa -C "honkerdynamo@gmail.com"
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in HonKer_Red_Linux_8_SSH.
Your public key has been saved in HonKer_Red_Linux_8_SSH.pub.
The key fingerprint is:
SHA256:1m5dcH8RWAUXrTM96uMAJpG0POoBY8vPEej8w8iGzYg honkerdynamo@gmail.com
The key's randomart image is:
+---[RSA 3072]----+
|       .      +=*|
|    . o o    . .o|
|   = . *    . .+ |
|  = + o o.   o+oo|
|   = + .So.   oo+|
|. * B o.o... o  .|
|Eo * B    o.o    |
|  .   .  .  .o   |
|            ...  |
+----[SHA256]-----+

翻译:

[root@localhost .ssh]# ssh-keygen -f HonKer_Red_Linux_8_SSH -t rsa -C "honkerdynamo@gmail.com"
生成公钥/私钥 rsa 密钥对。
输入密码(空表示没有密码):
再次输入相同的密码:
您的身份信息已保存在 HonKer_Red_Linux_8_SSH 中。
您的公钥已保存在 HonKer_Red_Linux_8_SSH.pub 中。
关键指纹是:
SHA256:1m5dcH8RWAUXrTM96uMAJpG0POoBY8vPEej8w8iGzYg honkerdynamo@gmail.com
钥匙的 randomart 图像是:
+---[RSA 3072]----+
|       .      +=*|
|    . o o    . .o|
|   = . *    . .+ |
|  = + o o.   o+oo|
|   = + .So.   oo+|
|. * B o.o... o  .|
|Eo * B    o.o    |
|  .   .  .  .o   |
|            ...  |
+----[SHA256]-----+

命令2(在指定目录下生成公钥和私钥并且重命名该文件):

ssh-keygen -f /root/.ssh/HonKer_Red_Linux_8_SSH -t rsa -C "honkerdynamo@gmail.com"

输出结果:

[root@localhost ~]# ssh-keygen -f /root/.ssh/HonKer_Red_Linux_8_SSH -t rsa -C "honkerdynamo@gmail.com"
Generating public/private rsa key pair.
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/HonKer_Red_Linux_8_SSH.
Your public key has been saved in /root/.ssh/HonKer_Red_Linux_8_SSH.pub.
The key fingerprint is:
SHA256:WEXuQ8GP6m3marHYnDUeJRD0ehZXHX4KAONE2P9H498 honkerdynamo@gmail.com
The key's randomart image is:
+---[RSA 3072]----+
|       =B==   .o.|
|      .oo=.o .. .|
|        oo=oo  ..|
|       o ++oo.o..|
|      . S.=+ o.. |
|        oo+.. o  |
|       = B o . ..|
|      . B =     E|
|       ..=.      |
+----[SHA256]-----+

翻译:

[root@localhost ~]# ssh-keygen -f /root/.ssh/HonKer_Red_Linux_8_SSH -t rsa -C "honkerdynamo@gmail.com"
生成公钥/私钥 rsa 密钥对。
创建目录“/root/.ssh”。
输入密码(空表示没有密码):
再次输入相同的密码:
您的身份信息已保存在 /root/.ssh/HonKer_Red_Linux_8_SSH 中。
您的公钥已保存在 /root/.ssh/HonKer_Red_Linux_8_SSH.pub 中。
关键指纹是:
SHA256:WEXuQ8GP6m3marHYnDUeJRD0ehZXHX4KAONE2P9H498 honkerdynamo@gmail.com
钥匙的 randomart 图像是:
+---[RSA 3072]----+
|       =B==   .o.|
|      .oo=.o .. .|
|        oo=oo  ..|
|       o ++oo.o..|
|      . S.=+ o.. |
|        oo+.. o  |
|       = B o . ..|
|      . B =     E|
|       ..=.      |
+----[SHA256]-----+

注意有的人会出现多出这句话:

[root@localhost ~]# ssh-keygen -f /root/.ssh/HonKer_Red_Linux_8_SSH -t rsa -C "honkerdynamo@gmail.com"
Generating public/private rsa key pair.
/root/.ssh/HonKer_Red_Linux_8_SSH already exists.
Overwrite (y/n)? 

翻译:

[root@localhost ~]# ssh-keygen -f /root/.ssh/HonKer_Red_Linux_8_SSH -t rsa -C "honkerdynamo@gmail.com"
生成公钥/私钥 rsa 密钥对。
/root/.ssh/HonKer_Red_Linux_8_SSH 已经存在。
覆盖(是/否)?

因为存在.ssh文件夹所以会提示你是否要覆盖?在后面输入yes就是同意覆盖文件夹。

最终结果:

[root@localhost ~]# ssh-keygen -f /root/.ssh/HonKer_Red_Linux_8_SSH -t rsa -C "honkerdynamo@gmail.com"
Generating public/private rsa key pair.
/root/.ssh/HonKer_Red_Linux_8_SSH already exists.
Overwrite (y/n)? yes
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/HonKer_Red_Linux_8_SSH.
Your public key has been saved in /root/.ssh/HonKer_Red_Linux_8_SSH.pub.
The key fingerprint is:
SHA256:k5GbBwmIHqNxPiFnTFESwlYdJ4YxXudz2+ALL5+26lU honkerdynamo@gmail.com
The key's randomart image is:
+---[RSA 3072]----+
|oo*O=*oo         |
|o+@o=.=. o       |
|.X =   o=o       |
|. +     +*+      |
|   .   .So.E     |
|        ooo      |
|       . +       |
|        +..      |
|      .oo+.      |
+----[SHA256]-----+

翻译:

[root@localhost ~]# ssh-keygen -f /root/.ssh/HonKer_Red_Linux_8_SSH -t rsa -C "honkerdynamo@gmail.com"
生成公钥/私钥 rsa 密钥对。
/root/.ssh/HonKer_Red_Linux_8_SSH 已经存在。
覆盖(是/否)? 是的
输入密码(空表示没有密码):
再次输入相同的密码:
您的身份信息已保存在 /root/.ssh/HonKer_Red_Linux_8_SSH 中。
您的公钥已保存在 /root/.ssh/HonKer_Red_Linux_8_SSH.pub 中。
关键指纹是:
SHA256:k5GbBwmIHqNxPiFnTFESwlYdJ4YxXudz2+ALL5+26lU honkerdynamo@gmail.com
钥匙的 randomart 图像是:
+---[RSA 3072]----+
|oo*O=*oo         |
|o+@o=.=. o       |
|.X =   o=o       |
|. +     +*+      |
|   .   .So.E     |
|        ooo      |
|       . +       |
|        +..      |
|      .oo+.      |
+----[SHA256]-----+


四、给.ssh文件夹读取权限

命令:

chmod 700 /root/.ssh

chmod 700:是给文件所有者的文件夹以及文件获取读 + 写 + 执行权限。

输出结果:

[root@localhost ~]# ls -al /root/
drwx------.  2 root root   70 7月  19 16:33 .ssh

[root@localhost ~]# chmod 777 /root/.ssh/

[root@localhost ~]# ls -al /root/
drwxrwxrwx.  2 root root   70 7月  19 16:33 .ssh


五、给私钥最高读取权限

命令:

chmod 777 /root/.ssh/HonKer_Red_Linux_8_SSH

六、给公钥转换成authorized_keys文件

authorized_keys文件是用来验证远程主机SSH登录的文件,SSH用户通过私钥来解密之后获取登录权限的文件。

命令:

mv HonKer_Red_Linux_8_SSH.pub authorized_keys

HonKer_Red_Linux_8_SSH.pub :是你生成的公钥文件注意一点是带.pub后缀的文件。

authorized_keys:是重命名后的文件名称,

输出结果:

[root@localhost .ssh]# ls
HonKer_Red_Linux_8_SSH  HonKer_Red_Linux_8_SSH.pub

[root@localhost .ssh]# mv HonKer_Red_Linux_8_SSH.pub authorized_keys

[root@localhost .ssh]# ls
authorized_keys  HonKer_Red_Linux_8_SSH

七、将私钥提取出来

提取文件的方法很多,可以使用ftp、U盘、远程下载等等手段来提取文件。

虚拟机用户推荐使用共享文件夹的方式来提取文件。

打开虚拟机设置-然后到选项-然后到共享文件夹

image-20210719165501318

然后根据个人需求来选择总是启用还是在下次关机或者挂起前一直启用,个人选择在下次关机或挂起前一直启用,这样子会自动禁用共享文件夹,因为用的不多提取私钥后可以分享他人使用。

然后添加文件夹,个人选择C盘的下载目录,当然桌面也行看个人的喜好了

image-20210719165802989
image-20210719165820015

完成之后返回虚拟机。

使用ls查看一下挂载目录的共享文件夹

命令:

ls /mnt/

输出结果:

[root@localhost .ssh]# ls /mnt/
hgfs

[root@localhost .ssh]# ls /mnt/hgfs/
Downloads

[root@localhost .ssh]# ls /mnt/hgfs/Downloads/
 Compressed    Music                                    'Telegram Desktop'
 desktop.ini   Programs                                  Video
 Documents     RT-N56UB1-newif3D2-512M_3.4.3.9-099.trx

其中hgfs文件夹可能不一样的虚拟机显示不一样根据实际情况输入文件夹名称即可。由此可知共享文件夹的路径了。

复制私钥到共享文件夹

命令:

cp

cp是copy的简称是复制的意思。

输出结果:

[root@localhost .ssh]# cp HonKer_Red_Linux_8_SSH /mnt/hgfs/Downloads/

[root@localhost .ssh]# ls /mnt/hgfs/Downloads/
 Compressed    HonKer_Red_Linux_8_SSH   RT-N56UB1-newif3D2-512M_3.4.3.9-099.trx
 desktop.ini   Music                   'Telegram Desktop'
 Documents     Programs                 Video

接下来就可以通过共享文件夹中的私钥来免密登录了。ssh私钥登录的方法就不举例子了。
如果有问题欢迎来评论。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 公钥登录,很多时候也说public key认证,公钥登录的原理:首先用户将自己的公钥存储在需要登录的远程机器上面,...
    HonKerDynamo阅读 789评论 0 0
  • 1 配置hosts文件 命令:vi /etc/hosts在文件尾部添加 2 安装ssh 2.1 什么是ssh 传统...
    Jerry_1116阅读 958评论 0 2
  • 免密登录的原理:通过密钥认证登录,首先在自己的服务器上生成公钥和私钥,其次将公钥上传到远程服务中,在于远程服务器建...
    亮涛阅读 9,810评论 0 2
  • 在VmWare中安装Linux Centos6.8版本 1.下载 linux:发行版 Ubuntu REdHa...
    王芳雨阅读 316评论 0 5
  • 基础命令 为了在 sudo 中设置权限提升,您需要编辑 sudoers 文件。 你不应该直接编辑文件,而是使用:s...
    米开朗基乐阅读 1,940评论 0 5