开发者社区> 问答> 正文

无法通过powershell SSH远程链接,提示connection refused

在快速搭建网站教程中提到使用Windows命令行终端工具登录ECS云服务器。但本人在操作中出现了如下错误: 链接失败,提示connection refused 屏幕截图 2020-11-20 092612.png

ECS实例为Windows Server 2019 数据中心版 64位中文版操作系统。

在阿里云操作平台使用Workbench远程连接,VNC远程连接均无问题。

很迷,求助,大佬帮帮忙啦(^-^)

展开
收起
w5cqicj4qda52 2020-11-30 11:40:22 3463 0
1 条回答
写回答
取消 提交回答
  • Ubantu a、准备工作

    在Windows下通过cmd命令行工具连接Ubuntu,出现问题:

    原因如下:

    首先Ubuntu系统默认是并没有安装SSH服务的,如果通过SSH连接Ubuntu,需要自己手动安装openssh-server。判断是否安装ssh服务,可以通过如下命令进行:

    ssh localhost 结果显示出现了一个问题。如下:

    这是因为Ubuntu默认没有安装openssh-server,我们也可以通过下一个命令来检测,如果只有ssh-agent,说明没有安装openssh-server,命令如下:

    ps -e|grep ssh

    因此,我们想要通过SSH协议连接需要手动安装openssh-server。命令如下:

    sudo apt-get install openssh-server 安装完成后,我们再用ps -e|grep ssh命令来看下,openssh-server安装上去没有。输入命令后出现如下截图,说明安装完毕,图中sshd就是我们所安装的。

    最后,我们通过ssh localhost命令来看下,这个命令主要用来连接本机如果出现要输入密码,说明成功。

    b、windows下利用CMD/PowerShell进行ssh连接

    什么是cmd? 就是windows端的命令行窗口, 可以使用 快捷键 win + R 后在输入框里输入 cmd 然后回车调出来。

    什么是powerShell? 就是cmd的增强版。可以在电脑左下角搜索程序那里搜出来。

    用它俩连服务器是一样的方式 :

    命令:ssh 用户名@服务器地址 如 ssh test@115.156.197.24

    在实验时可能出现了错误,如下所示:

    错误原因:用OpenSSH的人都知ssh会把你每个访问过的计算机的公钥(public key)都记录在~/.ssh/known_hosts。当下次访问相同计算机时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告,避免你受到DNS Hijack之类的攻击。我的客户机(Windows)之前与我的ubantu虚拟机服务器(ip:115.156.197.24)进行过连接,所以在我的相应目录中已经存下了这台ubantu服务器的公钥(public key)。

    然而,在后来由于某些原因进行了快照回复(类似于重装系统),由于系统重装,标识变了所以导致不能继续登录。可以参考:https://blog.csdn.net/asdcls/article/details/85346790

    https://www.cnblogs.com/cuizhipeng/p/5329848.html

    解决办法:对于客户机是Linux系统的,可以采用在客户端执行命令,清除本地缓存的证书(115.156.197.24为要登陆的服务器ip):

    ssh-keygen -R 115.156.197.24 或者采用https://www.cnblogs.com/cuizhipeng/p/5329848.html列出的三种办法来解决。而对于客户机是Windows的我们来说,显然只能采用后两种方法解决,即要么删除known_hosts文件,要么删除known_hosts中的那一条关于目标服务器对应ip的相关rsa信息。

    然后最后大功告成:输入用户密码既可以进行远程连接。

    需要注意的是:

    1. 由于安全的原因,默认情况下是无法远程连接ubantu的root账户的,解决方案自行百度

    2. 远程连接之前,首先要确定已经建立了服务器账户的登入目录以及指定了用户登入后所使用的shell。

    3. 远程连接之前,记得要用sudo命令为要连接的账户指定密码。否则无法远程连接。

    三、CentOS

    CentOS操作系统相对来说要简单一些,操作的大部分方法都与Ubuntu系统相同。因为它默认已经安装了openssh-server。所以直接使用CMD/Powershell连接即可。

    默认情况下,我们是可以远程连接CentOS的root用户的。

    2021-02-24 16:49:24
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载