本地Windows免密登录虚拟机
步骤
- 在Windows本地生成密钥
- 使用
scp
命令将公钥复制到虚拟机中的authorized_keys
中
一、在Windows本地生成密钥
本地计算机win+R
输入cmd
打开命令行,执行以下命令
ssh-keygen -t rsa
为了避免发生错误,根据按照返回情况需要,如果是y/n
的就输y
,没要求的直接回车就行。如果之前生成过,则会询问是否Overwrite
。
C:\Users\mgemc>ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\mgemc/.ssh/id_rsa):
C:\Users\mgemc/.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 C:\Users\mgemc/.ssh/id_rsa.
Your public key has been saved in C:\Users\mgemc/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:sSfnnibSJeyj7MbPTNCQAvj5gMzr5NZFcDd1MaYa33Q mgemc@DESKTOP-BAR2L0G
The key's randomart image is:
+---[RSA 2048]----+
| .. .. =. |
|. o . + + . |
|oo .+ +.o. . E |
|.o+ o o+oo . |
| .o. .oS.o. |
| o .. .o=. |
|+ . .. o.o. |
| + . .++=... |
|. o++++o |
+----[SHA256]-----+
C:\Users\mgemc>
如上,即表示密钥创建成功,并且告诉了密钥的存储位置
Your identification has been saved in C:\Users\mgemc/.ssh/id_rsa.
Your public key has been saved in C:\Users\mgemc/.ssh/id_rsa.pub.
这里把mgemc
换成你自己的用户名就可以找到密钥的位置了,如果在命令行里面找,直接
C:\Users\mgemc>dir .ssh
驱动器 C 中的卷是 Windows
卷的序列号是 90E2-38CB
C:\Users\mgemc\.ssh 的目录
2020/04/17 15:55 <DIR> .
2020/04/17 15:55 <DIR> ..
2019/07/17 09:09 1,766 demo
2019/07/17 09:09 404 demo.pub
2020/04/30 18:03 1,679 id_rsa
2020/04/30 18:03 404 id_rsa.pub
2020/04/30 16:33 585 known_hosts
5 个文件 4,838 字节
2 个目录 395,645,841,408 可用字节
C:\Users\mgemc>
二、使用scp
命令将公钥复制到虚拟机中的authorized_keys
中
上面的id_rsa.pub
就是要上传的文件,先切到上面的.ssh目录下,再使用如下命令上传至服务器下自定义的目录,这里的/home/lal/mykey
为自定义目录
cd .ssh
scp id_rsa.pub root@192.168.137.137:/home/lal/mykey
如果这里使用root
用户无法登录而使用普通用户可以,那可以使用以下方法步骤解决:
- 普通用户登录并切换到
root
用户,或者直接root
用户登录 vi /etc/ssh/shhd_config
- 注释掉
#PermitRootLogin without-password
,添加PermitRootLogin yes
service ssh restart
重启ssh
服务即可
接下来可以去虚拟机的自定义目录下,能找到id_rsa.pub
即表示上传成功了
[root@mycentos lal]# cd mykey/
[root@mycentos mykey]# ls
id_rsa.pub
[root@mycentos mykey]#
最后只需要将该公钥传入
# ~/.ssh这个目录如果没有就新建一个
cat id_rsa.pub >> ~/.ssh/authorized_keys
这样就可以实现本地的Windows系统免密登录远程虚拟机了
C:\Users\mgemc\.ssh>ssh root@192.168.137.137
Last login: Thu Apr 30 16:13:26 2020 from mylinux
[root@mylinux_clone ~]#
Ctrl+d
或者exit
即可退出登陆上的远程虚拟机系统
以上就是Windows本地免密登录虚拟机的方法。
注意:密钥如果使用在多台机器上,则第一次生成后不要再生成该文件,不然会造成之前已经拷贝了该文件的免密登录失效