一、切换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盘、远程下载等等手段来提取文件。
虚拟机用户推荐使用共享文件夹的方式来提取文件。
打开虚拟机设置-然后到选项-然后到共享文件夹
然后根据个人需求来选择总是启用还是在下次关机或者挂起前一直启用,个人选择在下次关机或挂起前一直启用,这样子会自动禁用共享文件夹,因为用的不多提取私钥后可以分享他人使用。
然后添加文件夹,个人选择C盘的下载目录,当然桌面也行看个人的喜好了
完成之后返回虚拟机。
使用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私钥登录的方法就不举例子了。
如果有问题欢迎来评论。