前言

之前一直使用Xshell来连接管理服务器,最近发现微软发布的一个全新的命令行终端工具 Windows Terminal,下面就来了解一下如何在 Windows 下连接服务器器并实现免密登录。


一、下载OpenSSH

在命令行输入ssh,如果出现以下内容说明已经安装OpenSSH

ssh

如果没有则需要自行安装:

win + i 打开设置 -> 找到应用 -> 应用和功能 -> 可选功能 -> 添加功能, 安装OpenSSH客户端 和 OpenSSH服务器

在这里插入图片描述

二、添加远程服务器

这里使用Windows Terminal,点击状态栏的倒三角,点击设置,会自动打开一个json文件(目前微软还没有更新GUI界面,所有的配置文件以json的形式保存)

在这里插入图片描述

下面就是添加服务器了,我们先找到键名为 list 的列表,可以看到在列表里已经默认存在Powershell,cmd和微软云服务器。下面我们添加自己的服务器。

        "list": [
            ……
            {
                "name": "CentOS 7",
                "commandline": "ssh root@192.168.41.* -p 22", //ssh + 服务器用户名 @ 服务器ip
                "hidden": false
            }
        ]

这时我们来测试一下(确定服务器的防火墙已经关闭),找到我们创建的服务器,点击连接,(第一次连接时系统会提示是否要连接,输入yes,回车),这时会提示输入密码,输入服务器密码之后回车,连接成功

在这里插入图片描述

三、配置免密钥登录

1.生成密钥文件

首先,在cmd下输入ssh-keygen,系统会自动在 C: \Users\ 用户名\ .ssh 下生成这两个文件,如下图:

在这里插入图片描述

之后将id_rsa.pub上传至服务器,因为在服务器端的 .ssh 目录下也存在一个id_rsa.pub文件,(如果Linux下没有这个文件,则输入ssh-keygen,会在 /root/.ssh 文件夹下生成密钥)所以为了避免混淆,我们复制一个出来,并改名为id_rsa.pub.windows


2. 发送密钥

如何将这个公钥发送给远程服务器呢?这里推荐WinSCP,一个免费开源的以SFTP协议为基础的传输工具,可以实现 Windows 与 Linux 之间的文件传输。

下载完成之后,打开并新建会话,输入主机名,用户名及密码,保存登录

在这里插入图片描述


左边的展示的是我们的本地C盘目录,右边展示的时服务器目录。之后,直接将C盘目录下的id_rsa.pub文件拖到右边的目录里,这样就实现了傻瓜式的文件传输

在这里插入图片描述

3. 追加密钥文件

将传输过来的公钥追加入密钥文件:cat id_rsa.pub.windows >> authorized_keys
(若是没有 authorized_keys 这个文件,请自行创建)

在这里插入图片描述

4. 验证

再次打开Windows Terminal,点击状态栏的倒三角,找到我们的服务器并点击,这时我们发现,系统已经自动连接到了服务器,而且也不会再提示我们输入密码,这样就实现了免密钥登陆。

在这里插入图片描述
当然,也可以通过 cmd 来验证,因为已经安装了OpenSSH服务,所以在 cmd 下输入ssh root@192.168.41.***,以查看免密连接情况


如有错误,欢迎私信纠正,谢谢支持!
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐