windows实现ssh免密登录服务器

前言

之前一直使用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.***,以查看免密连接情况


如有错误,欢迎私信纠正,谢谢支持!
要在Windows上通过SSH免密登录Ubuntu,可以按照以下步骤进行操作: 1. 生成本机公钥和私钥:在Windows系统中,可以使用OpenSSH工具来生成密钥对。打开命令提示符或PowerShell,并执行以下命令: ``` ssh-keygen -t rsa ``` 这将生成一个RSA密钥对,包括公钥和私钥。默认情况下,密钥将保存在用户的主目录的.ssh文件夹中。 2. 将公钥复制到Ubuntu服务器上:将生成的公钥复制到Ubuntu服务器上,以便实现免密登录。可以使用以下命令将公钥复制到服务器: ``` ssh-copy-id user@remotehost ``` 其中,user是您在Ubuntu服务器上的用户名,remotehost是服务器的IP地址或域名。您需要输入服务器上的密码以完成复制。 3. 配置SSH:在Ubuntu服务器上,打开SSH服务器的配置文件`/etc/ssh/sshd_config`,并确保以下配置存在或处于启用状态: ``` RSAAuthentication yes PubkeyAuthentication yes ``` 如果这些配置不存在或被注释掉,请取消注释或添加它们,并保存文件。 4. 重新启动SSH服务:在Ubuntu服务器上,执行以下命令以重新启动SSH服务,以使更改生效: ``` sudo service ssh restart ``` 通过以上步骤,您应该能够在Windows上通过SSH免密登录到Ubuntu服务器了。现在,您可以使用以下命令连接到服务器: ``` ssh user@remotehost ``` 其中,user是您在Ubuntu服务器上的用户名,remotehost是服务器的IP地址或域名。 请注意,如果您的Windows系统没有安装OpenSSH,您需要先下载和安装OpenSSH客户端。您可以在Microsoft的官方存储库(https://github.com/PowerShell/Win32-OpenSSH/releases)上找到OpenSSHWindows版本。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值