需要准备的东西
- win+R 进入控制台 输入ssh,看是否存在Open SSH,基本都是可以出现以下图,微软已经在15年的时候就集成到win中无需安装任何软件
- 其次,准备一台云服务器用来与用户机通信以及另一台服务器用来作为CA签发证书,还有就是自己的主机作为用户机
第一步 信任CA
CA其实也是一个由一台服务器生成的一对公私钥,具体加密过程就不说了,可以看这篇博文
我们将生成的CA公钥,类似于这个形式
@cert-authority * ssh-ed25519 AAAA************1lZD*****E5AA***********************************************
添加到用户机的known_hosts 文件中,此文件直接在C盘中搜索即可,在末尾直接追加即可,然后保存关闭文件。
此时,用户机已经信任了此CA,将会信任它所签发的证书。
之后,如果服务器还没有信任该CA,则需要在服务器端也信任该CA,在此不赘述,一般是服务器已经信任了该CA
第二步 生成用户机公钥
win+R 进入控制台,输入ssh-keygen
回车,一路回车即可,期间会设置一些公私钥保存地址什么的也不需要,默认就好,最后生成了公钥会出现如下界面:
这里的默认加密算法是RSA,如果需要切换其他算法可参考以下指令
ssh-keygen -t rsa -b 4096 -f my_id -C "email@example.com"
-t表示加密算法 可以是ed25519等
-b表示加密时密钥长度,ed25519不需要指定
-f表示生成一个私钥文件 不设置也会生成,只是可以自命名
-C表示一个注释,比如这个密钥是用来干嘛的
第三步 CA生成证书
将用户生成的公钥文件以及服务器公钥文件发送给CA,CA将通过自己的私钥对用户以及服务器的公钥进行加密以生成各自的证书,然后再将证书分别发放给用户以及服务器,用户机会拿到一个证书文件,
将此文件移动到.ssh文件夹下与其他所有密钥文件放在一起,文件路径一般为C:\Users\用户名\.ssh
找到目前使用的用户进入便可以看到, .ssh文件夹一般会被隐藏,需要点击显示隐藏文件夹找到。
然后,用户机就完成了所有的工作,可以进行登陆,这里有两种方法可以远程登陆服务器
第四步 两种方法证书登陆服务器
- win+R 进入cmd 输入:
ssh root@ip地址
root是登陆名也可以是别的 - Xshell远程登陆
打开Xshell 新建一个连接,输入命名以及服务器地址
在用户身份验证中选择
点击连接,接受公钥,输入用户名
点击确定后,出现需要提交密钥页面
此处的用户密钥指的是,之前向CA发送的公钥对应的私钥,注意是私钥!点击浏览可以选择私钥文件传入,无需输入密码,点击确定即可登陆