AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 458244
Accepted
user3523406
user3523406
Asked: 2018-07-25 15:53:58 +0800 CST2018-07-25 15:53:58 +0800 CST 2018-07-25 15:53:58 +0800 CST

CentOS 7 sshd 好像不行?

  • 772

我开始了sudo systemctl start sshd,但我无法从外部连接到 CentOS 7 机器。但是,在 CentOS 7 机器上,我可以通过ssh.

我错过了什么?

日期 #1

我根据 slm 的回答确认了以下内容:

  • sshd服务已启动并绑定到 IP 131.181.10.150 上的端口 22
  • 我可以执行curl -v telenet://131.181.10.150:22并查看“已连接”消息。

我的问题是当我尝试访问ssh服务器时:

$ ssh [email protected]
ssh: connect to host 131.181.10.150 port 22: Operation timed out

日期 #2

我记得当我使用docker-compose它开始下载容器时,我突然失去了启动ssh连接的能力。

查看使用ip link show打开的docker0NIC + 许多其他接口的接口数量。

然后我尝试禁用 Docker 服务和防火墙,但我仍然无法连接。

$ sudo systemctl stop docker
$ sudo systemctl stop firewalld

仍然没有运气。

centos docker
  • 1 1 个回答
  • 5939 Views

1 个回答

  • Voted
  1. Best Answer
    slm
    2018-07-25T17:10:36+08:002018-07-25T17:10:36+08:00

    通过sshd服务,设置和开始使用非常简单。

    1.启动服务

    确保服务已启动并在端口 22 上运行/侦听。

    启动服务
    $ sudo systemctl start sshd
    
    检查状态
    $ sudo systemctl status sshd
    ● sshd.service - OpenSSH server daemon
       Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
       Active: active (running) since Tue 2018-07-24 22:24:00 EDT; 1h 40min left
         Docs: man:sshd(8)
               man:sshd_config(5)
     Main PID: 1270 (sshd)
        Tasks: 1
       CGroup: /system.slice/sshd.service
               └─1270 /usr/sbin/sshd -D
    
    Jul 24 22:24:00 centos7 systemd[1]: Starting OpenSSH server daemon...
    Jul 24 22:24:00 centos7 systemd[1270]: Executing: /usr/sbin/sshd -D
    Jul 24 22:24:00 centos7 sshd[1270]: Server listening on 0.0.0.0 port 22.
    Jul 24 22:24:00 centos7 sshd[1270]: Server listening on :: port 22.
    Jul 24 22:24:00 centos7 systemd[1]: Started OpenSSH server daemon.
    Jul 24 20:31:37 centos7 sshd[1582]: Accepted publickey for vagrant from 10.0.2.2 port 64437 ssh2: RSA SHA256:1vJymfZsu2KZ49lDftGMzz2VEb2Z2Y8PNi9cs55eHGE
    Jul 24 20:43:29 centos7 systemd[1]: Trying to enqueue job sshd.service/start/replace
    Jul 24 20:43:29 centos7 systemd[1]: Installed new job sshd.service/start as 560
    Jul 24 20:43:29 centos7 systemd[1]: Enqueued job sshd.service/start as 560
    Jul 24 20:43:29 centos7 systemd[1]: Job sshd.service/start finished, result=done
    

    2. 验证服务正在监听

    检查是否监听 22 端口
    $ sudo netstat -tlpn | grep sshd
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1270/sshd
    tcp6       0      0 :::22                   :::*                    LISTEN      1270/sshd
    

    您还需要验证是否sshd正在侦听所有接口 (0.0.0.0) 或至少是您系统的 IP 地址:

    $ ip a l eth0 | awk '/inet / {print $2}'
    192.168.56.101/24
    

    因此,您会在netstat输出中看到 192.168.56.101:22,例如。

    3.防火墙

    接下来检查防火墙是否允许网络流量到达端口 22。

    $ sudo firewall-cmd  --list-all
    FirewallD is not running
    

    如果是这样,那么流量可以到达端口 22。如果看起来像这样:

    $ firewall-cmd  --list-all
    public (active)
      target: DROP
      icmp-block-inversion: no
      interfaces: eth0 eth1
      sources:
      services: ssh dhcpv6-client
      ports:
      protocols:
      masquerade: no
      forward-ports:
      source-ports:
      icmp-blocks:
      rich rules:
    

    它允许ssh&dhcpv6-client服务的流量和其他一切的流量。同样,这没问题,应该允许 SSH 流量进入。

    4.检查/etc/ssh/sshd_config

    确认您/etc/ssh/sshd_config没有阻止外部连接。以下选项的设置应类似于我在下面显示的内容。

    $ grep -vE '^#|^$|AcceptEnv|HostKey|Syslog|MAC|Banner|LogLevel|Authorized' /etc/ssh/sshd_config
    PermitRootLogin yes
    MaxAuthTries 4
    HostbasedAuthentication no
    IgnoreRhosts yes
    PermitEmptyPasswords no
    PasswordAuthentication yes
    ChallengeResponseAuthentication no
    GSSAPIAuthentication yes
    GSSAPICleanupCredentials no
    UsePAM yes
    X11Forwarding no
    Subsystem   sftp    /usr/libexec/openssh/sftp-server
    Protocol 2
    

    5. 验证

    您可以从您的一个外部客户端使用这样的命令进行确认:

    $ timeout 2 curl -v telnet://192.168.56.101:22
    * Rebuilt URL to: telnet://192.168.56.101:22/
    *   Trying 192.168.56.101...
    * Connected to 192.168.56.101 (192.168.56.101) port 22 (#0)
    SSH-2.0-OpenSSH_7.4 
    $
    

    注意:如果您在此处看到“已连接到 XXXX”IP 地址消息,则说明从您正在运行的客户端计算机curl到sshd服务器的网络流量没有任何限制。

    6. 码头工人

    在某些情况下,例如安装了 Docker 的地方,您会遇到网桥在docker0网桥中添加了多个虚拟网络的场景docker0。你可以像这样看到它们:

    $ docker network ls
    NETWORK ID          NAME                DRIVER              SCOPE
    bd7594c1dce3        bridge              bridge              local
    db24b1e2be58        host                host                local
    edf606d533a5        none                null                local
    

    在这些情况下,您需要删除任何额外的网络来恢复您的物理网络,以便它能够正确路由 SSH 数据包。只需使用该命令docker network rm <net id>删除标准之外的任何内容bridge,host和none.

    参考

    • docker-compose 网络创建将我踢出 ssh
    • 5

相关问题

  • 为什么我的交换机没有从指定的池中获取地址

  • 如何在 RHEL 7 上离线安装 docker?

  • 我只需要运行这个脚本文件一次吗?

  • 在 CentOS7 GNOME 的 Applications-menu 选项卡中创建自定义菜单

  • 奇怪的路由器与centos 6一起工作[关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    ssh 无法协商:“找不到匹配的密码”,正在拒绝 cbc

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    如何卸载内核模块“nvidia-drm”?

    • 13 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add 返回:“连接代理时出错:没有这样的文件或目录” 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya 为什么 Linux 使用 LF 作为换行符? 2017-12-20 05:48:21 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve