Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SSH连接拒绝:另一个为堆!请检查故障排除过程

SSH连接拒绝:另一个为堆!请检查故障排除过程
EN

Unix & Linux用户
提问于 2020-12-05 22:54:24
回答 2查看 1.1K关注 0票数 2

我在这里读过许多SSH连接拒绝发布的帖子,写完之后还会继续浏览这些帖子,但是我不会盲目地尝试每一个解决方案,希望它对我的计算机有用,我想我会写出我的故障排除解决过程。

目标:使用ssh将日志根目录到我的服务器。

问题:

代码语言:javascript
运行
AI代码解释
复制
$ ssh root@123.456.78.911
ssh: connect to host 123.456.78.911 port 22: Connection refused

Context Server:数字海洋(虚拟机-每月5美元交易)操作系统: Windows 10,Linux子系统,Ubuntu,Linux子系统OpenSSH -客户端和服务器都安装了防火墙- SSHD增加了津贴(进出)

故障排除过程

  1. 在数字海洋上建立新的SSH密钥
  2. ssh正在运行
  1. 我已经设置好了正确的端口

编辑:添加详细模式输出

代码语言:javascript
运行
AI代码解释
复制
ssh -v root@xxx.xxx.xx.xxx
OpenSSH_8.2p1 Ubuntu-4ubuntu0.1, OpenSSL 1.1.1f  31 Mar 2020
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: include /etc/ssh/ssh_config.d/*.conf matched no files
debug1: /etc/ssh/ssh_config line 21: Applying options for *
debug1: Connecting to xxx.xxx.xx.xxx [xxx.xxx.xx.xxx] port 22.
debug1: connect to address xxx.xxx.xx.xxx port 22: Connection refused
ssh: connect to host xxx.xxx.xx.xxx port 22: Connection refused

我以前在这台电脑上连接过我的服务器,但这个月早些时候我不得不重新设置工厂。第一次遇到麻烦,我不记得是怎么解决的(这是一年前的事)。我确信ssh是在DO服务器端启用的,所以我的猜测是私钥和公钥放错了位置,我必须在某个地方更改文件路径。我记得在Windows中使用Ubuntu文件位置有一个问题。

是否必须将公钥和私钥添加到其他授权文件中?或者关键位置?

EN

回答 2

Unix & Linux用户

发布于 2020-12-07 02:02:44

首先:了解应该发生的事情的基本原理。

Windows桌面上的SSH客户端进程应该连接到DigitalOcean VM上的TCP端口22。一旦建立了连接,它就应该使用SSH密钥作为用户root进行身份验证。

这意味着您不需要桌面上的sshd (或"ssh服务“):只有当您希望允许入站SSH连接到您的桌面时,才需要它。

你被“拒绝了连接”。这意味着以下几点之一:

  • 您可能没有云VM的正确IP地址(对于云VM,VM内部看到的本地IP地址可能与云基础结构提供给internet的地址不同)。
  • 本地网络可能需要使用代理来访问本地网络之外的服务(在工作场所网络中常见)。
  • 数字海洋VM可能根本不运行
  • 在指定允许的源IP地址之前,云中的VM防火墙可能不会允许传入SSH连接
  • 您可能必须使用Digital的web /API来启用云VM上的SSH服务。

一旦可以建立到VM的SSH端口的基本TCP连接,就可以继续对身份验证进行故障排除。

如果访问SSH端口的权限不限于已知的IP地址,则允许在云VM上进行密码验证的登录是一个<#>very错误的想法:有被黑客攻击的服务器和自动恶意软件将花费全部时间扫描互联网上启用SSH的主机,并试图暴力攻击任何知名的用户帐户,包括root

sshd ( SSH服务)甚至有一个特殊的设置,它可以强制直接登录为root,或者总是被拒绝,或者只接受密钥身份验证,即使其他用户可以启用密码身份验证。强烈建议云服务使用该设置。

如果一个VM是由多个人维护的,那么使用个人用户帐户登录,然后使用sudo可以更容易地使用日志来找出是谁做的--如果有必要怎么办。云提供商可能要求您使用非root的特定用户帐户进行初始登录;一旦首次成功连接并获得根访问权限,显然可以根据需要配置VM。

通常,云提供商将为VM的初始SSH访问提供预先生成的SSH私钥。有几种可能的密钥文件格式:*.ppk文件用于PuTTY,这是一个常见的免费Windows客户端(现在也可用于Linux),而没有特定后缀的id_*用于OpenSSH。通常,可以使用相应的密钥生成器工具将密钥从一种格式转换为另一种格式(如PuTTYgen keyfile.ppk -O private-openssh -o id_openssh,用于将*.ppk文件转换为OpenSSH格式)。

如果您使用的是WSL的命令行SSH客户端,这是OpenSSH的一种形式。通常,OpenSSH在本地用户主目录的.ssh子目录(根据所使用的算法命名为id_rsaid_dsaid_ecdsaid_ed25519等)中查找默认私钥。如果存在任何这些私钥文件,客户端将自动将它们提供给远程服务器,如果它允许基于密钥的身份验证。

在WSL上,Unix样式主目录的位置可能不那么明显,因此您可能希望使用-i选项显式指定要使用的私钥文件。

在使用密钥身份验证时,仍然必须指定正确的用户名,因此SSH命令可能如下所示:

代码语言:javascript
运行
AI代码解释
复制
ssh -i /some/where/id_digitalocean_privatekey root@123.456.78.911
票数 1
EN

Unix & Linux用户

发布于 2020-12-06 03:22:54

首先。不要使用此设置。其实你根本不想用那些MACs电脑!

您试图启用密码身份验证吗?就为了看看这个有用吗?您还检查了/var/log/auth.log吗?您在/etc/ sshd /sshd_config中增加了sshd日志记录的详细程度吗?

对我来说,它更多地关注的方向是,sshd守护进程没有正确地侦听端口22。这就是为什么你被拒绝了连接。您可以使用nmap检查该端口是否真的打开。

代码语言:javascript
运行
AI代码解释
复制
sudo nmap -sSV -O -p 22 -v9 destination_IP
票数 -2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/623143

复制
相关文章
95 - 在Flask中如何使用动态路由
1. 静态路由和动态路由有什么区别? 路由 Utl Path http://loaclhost/abc/test.html 静态路由 Path与路由函数一一对应 动态路由 多个Path与同一个路由函数对应 http://loaclhost/abc/test.html http://loaclhost/xyz/test.html 不管访问哪一个Url,都会执行同一个服务端的路由函数 2. 如何使用Flask实现动态路由 ''' pip install flack ''' from flask import
ruochen
2021/06/27
5.6K0
95 - 在Flask中如何使用动态路由
在嵌入式中,如何正确使用动态内存?
预防:千万不要修改动态内存句柄!可以另外赋值给其他指针变量,再对该动态内存进行访问操作。
混说Linux
2022/11/18
1.7K0
在 WordPress 中如何定义字段依赖显示
WPJAM Basic 插件作为我们「WordPree果酱」团队所有插件和项目的基础,其中表单字段的渲染就是其中最重要的一个能力,我们做到了只需配置就能使用,无需额外增加页面的 JavaScript 的交互代码。
Denis
2023/04/13
8.7K0
在 Kubernetes 中,如何动态配置本地存储?
Kubernetes 中使用节点的本地存储资源有 emptyDir、hostPath、Local PV 等几种方式。这之中,emptyDir 无法持久化数据,hostPath 方式需要手动管理卷的生命周期,运维压力大。因此在某些场景下,如果用户出于性能和运维成本考虑需要使用本地存储,Local PV 似乎是唯一选择。
CNCF
2019/12/05
3.5K0
在 Kubernetes 中,如何动态配置本地存储?
在 Kubernetes 中,如何动态配置本地存储?
Kubernetes 中使用节点的本地存储资源有 emptyDir、hostPath、Local PV 等几种方式。这之中,emptyDir 无法持久化数据,hostPath 方式需要手动管理卷的生命周期,运维压力大。因此在某些场景下,如果用户出于性能和运维成本考虑需要使用本地存储,Local PV 似乎是唯一选择。
kubernetes中文社区
2019/08/27
3.2K0
在 Kubernetes 中,如何动态配置本地存储?
linux中vim如何显示行数,vim 在linux下中如何设置显示行数「建议收藏」
softtabstop:表示在编辑模式的时候按退格键的时候退回缩进的长度,当使用 expandtab 时特别有用。
全栈程序员站长
2022/11/16
6.9K0
如何在 MySQL 中显示所有的数据库
MySQL 是最流行的开源关系数据库管理系统。本教程介绍如何通过命令行显示 MySQL 或 MariaDB 服务器中的所有数据库。
星哥玩云
2022/08/18
10.9K0
如何在 MySQL 中显示所有的数据库
在DataGrid中显示图片
    DadaGrid 是 ASP.NET 编程中一个很重要的控件,其优良的可定制功能为提高它的表现力提供了极大的方便。除了与数据源直接绑定以外,我们还可以通过列绑定模板对 DataGrid 的列进行自定义,来按照我们设定的格式显示数据。
Java架构师必看
2021/03/22
3.7K0
使用Kafka,如何成功迁移SQL数据库中超过20亿条记录?
使用 Kafka,如何成功迁移 SQL 数据库中超过 20 亿条记录?我们的一个客户遇到了一个 MySQL 问题,他们有一张大表,这张表有 20 多亿条记录,而且还在不断增加。如果不更换基础设施,就有磁盘空间被耗尽的风险,最终可能会破坏整个应用程序。而且,这么大的表还存在其他问题:糟糕的查询性能、糟糕的模式设计,因为记录太多而找不到简单的方法来进行数据分析。我们希望有这么一个解决方案,既能解决这些问题,又不需要引入高成本的维护时间窗口,导致应用程序无法运行以及客户无法使用系统。在这篇文章中,我将介绍我们的解决方案,但我还想提醒一下,这并不是一个建议:不同的情况需要不同的解决方案,不过也许有人可以从我们的解决方案中得到一些有价值的见解。
深度学习与Python
2021/01/20
3.4K0
如何对动态创建控件进行验证以及在Ajax环境中的使用
首先给一个常规的动态创建控件,并进行验证的代码 [前端aspx代码] <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Test.aspx.cs" Inherits="Test" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <htm
菩提树下的杨过
2018/01/22
8.2K0
在 Java 中如何使用 transient
Java语言的transient不像class、synchronized和其他熟悉的关键字那样众所周知,因而它会出现在一些面试题中。这篇文章我将为大家讲解transient。
哲洛不闹
2018/09/18
6.4K0
在 Java 中如何使用 transient
在Scrapy中如何使用aiohttp?
当我们从一些代理IP供应商购买代理IP时,他们可能是提供一个网址供我们查询当前可用的代理IP。我们周期性访问这个网址,拿到最新的IP,再分给爬虫使用。
青南
2020/07/16
6.7K0
在HTML中如何使用CSS?
一、前言 在 HTML 中使用 CSS,包括内联式、内嵌式、链接式和导入式。 二、分类 2.1 内联式 内联式是所有样式应用方式中最为直接的一种,它通过对 HTML 标记使用 属性,将 CSS 代码直接写在其中。 内联式是最简单、直接的 CSS 使用方法,但它的针对性很明显,只能作用于当前标记,造成代码冗余,维护比较困难。 2.2 内嵌式 内嵌式与内联式使用方法不同,它将 CSS 代码写在 标记之间,并需要采用 标记进行声明。 使用内嵌式 CSS 用法时 CSS 代码将被集中放在 标记中,这样方便查
企鹅号小编
2018/02/01
9.1K0
在Zeppelin中如何使用Hive
我们来看看强大的 Zeppelin 能够给 Hive 带来什么吧。首先需要安装 Hive 和 Zeppelin。具体请参考如下两篇文章:
smartsi
2020/10/27
6.9K0
在Zeppelin中如何使用Hive
在Python中如何使用Elasticsearch?
在这篇文章中,我将讨论Elasticsearch以及如何将其整合到不同的Python应用程序中。
马哥linux运维
2019/06/10
8.4K0
在Python中如何使用Elasticsearch?
结合ashx来在DataGrid中显示从数据库中读出的图片
//---------------------------------------BindImage.aspx ----------------------------------------
Java架构师必看
2021/03/22
3.9K0
在C中,如何知道动态分配是否成功
C语言使用 malloc函数动态在堆上分配内存。malloc根据字节数的参数。如果无法分配内存,该函数将返回指向已分配内存的指针或 NULL 指针。
mariolu
2021/11/06
2.8K0
如何修改django的app在admin中显示的名称
在django的开发中,很多时候我们希望app在admin中显示成我们想要的中文名,而不是显示默认的app_label名称。 比如我们有一个blog应用,在我们的blog app目录下面,默认会生成一个apps.py文件,类似:
小海怪的互联网
2019/09/25
3.7K0
如何修改django的app在admin中显示的名称
点击加载更多

相似问题

如何使用其他下拉列表中未选择的选项填充下拉列表?

36

根据所选项目填充选择下拉列表

45

如何从动态填充的下拉列表中动态选择选项

122

填充下拉列表的选项

13

如何使下拉列表填充选项

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档