Linux服务器通过ssh连接windows服务器失败。Windows安装openssh遇到的问题及一些解决思路。

背景

因工作需要,用Linux系统搭建Jenkins自动化构建(仅供前端项目使用)。Jenkins搭建并构建好,来到远程发布部署这一步,刚好手上还有一台Windows系统的测试服务器。并有一端口已经映射好,专供我测试部署项目使用。结果在配置ssh时,出现链接失败。Windows服务器之前通过教程安装过OpenSSH(其实就是瞎搞,客户端安装成功,服务端没成功)。
在这里插入图片描述

心路历程

在默认ssh已经安装了的前提下,开始找原因。

作为前端开发人员,对服务器、网络等一窍不通,属实有些惭愧。询问后端小伙伴,一口咬定没开端口。便着力于寻找如何开端口。查了下,需要防火墙建入站规则开22端口。

一顿操作后发现,防火墙根本没有打开过。

知识点1:防火墙没有打开,默认可访问所有端口

使用下面命令,通了,发现是存在22端口的。

telnet [ip地址] 22

查看ssh服务状态,服务已启动(其实启动的是客户端,但此时的我以为启动了服务端)

net start sshd

有22端口,为什么连不上呢。再看Windows服务器安装OpenSSH的教程,怎么这些步骤没有经历过。目标放在了安装上。应该是安装出问题,看文章有两个命令net start sshdnet start opensshd。使用net start sshd开启服务,使用net start opensshd,启动服务失败。经查验

知识点2
ssh默认22端口
ssh存在客户端服务端
客户端:想连其它服务器
服务端:想被其他服务器连

知识点3
开启客户端命令: net start sshd
开启服务端命令:net start opensshd

这下原因找到了,ssh服务端根本没启动。根据教程重新安装了一遍,输入启动命令,成功!
在Linux服务器输入连接命令(使用用户名密码连接),连接Windows服务器成功!

ssh username@hostname

其它知识点

在查验过程还发现了一些知识点,下面列举一下:

知识点4
Windows服务器检查端口命令:netcat -an
该命令会显示当前开放的端口以及应用程序占用的端口号情况

知识点5
ssh自己连自己:ssh 127.0.0.1
ssh通过连自己,可以测试能不能发起ssh连接,如果没有进入输入密码界面。表示不能发起连接。

遇到但未解决的问题

其实在安装openssh过程中,遇到了几个问题没能解决,如果知道原因的或者找到解决方案的大佬们可以评论区告知一下,感谢。

问题一:使用Window 设置安装不了ssh服务端,原因不明;

在这里插入图片描述

问题二:使用PowerShell 来安装不了ssh服务端,安装失败,找了几篇文章都解决不了,最后换一种安装方法;
在这里插入图片描述

问题三:根据第一种教程安装,只有服务端安装成功
之前下载OpenSsh安装包安装OpenSsh,当时我以为执行ssh -V能查到版本号,使用net start sshd命令显示启动服务成功就是ssh服务端安装成功;现在看来只有客户端安装成功了。删除ssh相关文件夹后。根据上述的安装文章重新安装,并且选择了安装客户端和服务端,发现只有服务端成功安装了。最后为了让客户端和服务端都能使用。我两种安装模式都使用了。
第一种:教程
通过下载安装包。根据教程安装。这种方式能成功安装服务端,但是客户端用不了
在这里插入图片描述
第二种(最初安装):
通过GitHub ,下载安装包
在这里插入图片描述
参考此文章:https://blog.csdn.net/qq_33594636/article/details/128849482
写到这里,我发现我使用此安装方法并没有按照教程操作,而是跳过了安装服务端步骤。进行这样的操作:下载安装包->解压->在此路径打开终端->执行下面命令。

powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1

由此,我得到了一个ssh客户端【哭笑不得】

Logo

一起探索未来云端世界的核心,云原生技术专区带您领略创新、高效和可扩展的云计算解决方案,引领您在数字化时代的成功之路。

更多推荐