前言
之前一直使用Xshell来连接管理服务器,最近发现微软发布的一个全新的命令行终端工具 Windows Terminal,下面就来了解一下如何在 Windows 下连接服务器器并实现免密登录。
一、下载OpenSSH
在命令行输入ssh,如果出现以下内容说明已经安装OpenSSH
如果没有则需要自行安装:
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.***
,以查看免密连接情况
如有错误,欢迎私信纠正,谢谢支持!