在windows生成SSH秘钥连接linux远程主机

前言:在windows主机中生成ssh秘钥,然后分别用远程工具与命令行去通过秘钥连接远程服务器;并实现在远程服务器中添加多个不同客户端的秘钥,以此来实现不同客户端都可以使用秘钥连接远程服务器。本次实验主机:linux(做远程服务器),(win10客户端);使用的remote terminal:xshell。

课外知识:ssh使用的是“非对称秘钥加密”方式,会生成两个秘钥,一个是私钥、一个是公钥;私钥是放在客户端中,公钥则放在远程服务器中,连接的时候只需要选择私钥然后与远程服务器中的公钥进行验证即可建立连接!

在windows命令行中生成秘钥:

ssh-keygen    

ps:1.是否保存秘钥文件在xxx路径中!

       2. 让你输入密码,一个秘钥的验证秘钥,以提高安全性!可以直接回车,表示空密码。我这里 也是使用空密码。

       3.再次确认密码。 

 ps:公钥后缀为.pub。

在remote terminal “xshell”中生成:

打开xshell——工具——新建用户秘钥生成向导——下一步——下一步——修改秘钥名称——保存为文件——完成(公钥生成完毕!)  ——选择私钥然后导出私钥——关闭。

下面图片中保存的文件为“公钥”(文件后缀为.pub):

下面图片导出的是“私钥”:

 

 将公钥上传到远程服务器:

在远程服务器(adi01)上的/root/.ssh目录创建一个普通文件:

touch  authorized_keys    # 文件名建议和我保持一致,因为sshd配置文件中的授权文件就是这个名字,这样我们就不需要修改配置文件!

将window中的公钥上传到远程服务器:

 ps:因为我已经在远程服务器中生成过ssh秘钥,所以避免文件重复修改了window公钥的名字(id_rsa_win.pub)!

将两个公钥写入到上面创建的authorizad_keys文件中:

 命令:

cat id_rsa_win.pub >>authorized_keys  #添加第一个公钥到authorized_keys中
echo -e "#" >>authorized_keys            # 不同的公钥之间要使用换行分隔,所以要追加写入一个换行符,为了方便区分我加了个“#”号。ps: 图片中的这个命令是错误的,一定要加-e才能实现换行!
 cat second.pub >>authorized_keys #添加第二个公钥到authorized_keys中

写入完成之后使用私钥连接测试:

cmd命令行:

ssh [email protected] -i 私钥文件名   # 如下我的私钥有两把,分别是:id_rsa与second。

 

xshell:

 

 【ps:如上前面我们分别写入xshell与cmd命令行中生成公钥,最后分别使用xshell与cmd命令行中生成的私钥去连接远程服务器已经可以正常连接了。】

Guess you like

Origin blog.csdn.net/qq_43082279/article/details/119968083