Raspberry Pi上的SSH“连接被拒绝”-无法找到原因


13

我有以下问题SSH“连接被拒绝”。它将正常工作,但是当我使用SSH时,会出现“连接被拒绝”的情况,必须重新连接(5-10分钟内不会发生)。我已经尝试了所有方法(重新启动linux,重新启动ssh),但仍然无济于事。我也检查了var / log,但那里没有任何帮助...

注意:我发现有趣的注释是,当我尝试ssh到我的外部ip(277 ...)时,它进入黑色cmd屏幕,我关闭它并尝试我的192.168.0.13地址,它允许我登录..但很短同时,再次拒绝连接...当然,如果我打开服务器并重新启动sudo sshd,我的SSH“拒绝连接”就会消失...

我的ssh端口在23打开,我也在调制解调器/路由器上进行了设置

sudpi@raspberrypi:~$ sudo netstat -tlpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1817/apache2
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN      2227/vsftpd
tcp        0      0 127.0.0.1:3350          0.0.0.0:*               LISTEN      1784/xrdp-sesman
tcp        0      0 0.0.0.0:23              0.0.0.0:*               LISTEN      3115/sshd
tcp        0      0 0.0.0.0:3389            0.0.0.0:*               LISTEN      1781/xrdp
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      2397/mysqld

当我断开连接并重新登录并检查“ WHO”时,我只会看到我以前的连接,我的根和当前连接

whopi@raspberrypi:~$ who  
pi       tty1         2013-01-28 09:20
pi       pts/0        2013-01-28 10:28 (192.168.0.12)
pi       pts/1        2013-01-28 10:32 (192.168.0.12)

这就是我修改过的ssh_config中的内容(SSH到23,因为行家使用22 ...)

#   Port 23
...    
#Keep my damn connection alive!
KeepAlive yes
ServerAliveInterval 60

这是我运行arp-scan时得到的

pi@raspberrypi:/etc$ sudo arp-scan -I eth0 -l | grep 192.168.0.13
192.168.0.13    a0:6c:ec:ec:bb:5b       (Unknown)

我在网上找到的这部分告诉我应该发布以下两个信息

pi@raspberrypi:~$ ps afxu | grep sshd
root      2838  0.0  0.7   9800  3168 ?        Ss   10:27   0:00 sshd: pi [priv]                                                                                   
pi        2845  0.0  0.3   9800  1628 ?        S    10:28   0:00  \_ sshd: pi@pt                                                                                   s/0
root      2854  0.0  0.7   9800  3168 ?        Ss   10:32   0:00 sshd: pi [priv]                                                                                   
pi        2861  0.0  0.3   9800  1628 ?        S    10:32   0:00  \_ sshd: pi@pt                                                                                   s/1
root      2900  0.3  0.7   9800  3168 ?        Ss   10:44   0:00 sshd: pi [priv]                                                                                   
pi        2907  0.0  0.3   9800  1628 ?        S    10:44   0:00  \_ sshd: pi@pt                                                                                   s/2
root      2934  0.0  0.2   6204  1060 ?        Ss   10:45   0:00 /usr/sbin/sshd
root      2954  0.7  0.7   9800  3164 ?        Ss   10:45   0:00  \_ sshd: pi [p                                                                                   riv]
pi        2961  0.1  0.3   9800  1624 ?        S    10:46   0:00      \_ sshd: p                                                                                   i@pts/3
pi        2970  0.0  0.1   3536   796 pts/3    S+   10:46   0:00              \_                                                                                    grep sshd

编辑: pi @ raspberrypi:〜$ ssh -vvv 192.168.0.13(这可能很长...谢谢Bart Friederichs)

pi@raspberrypi:~$ ssh -vvv 192.168.0.13 -p 23
OpenSSH_6.0p1 Debian-3, OpenSSL 1.0.1c 10 May 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to 192.168.0.13 [192.168.0.13] port 23.
debug1: Connection established.
debug1: SELinux support disabled
...
debug1: match: OpenSSH_6.0p1 Debian-3 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.0p1 Debian-3
debug2: fd 3 setting O_NONBLOCK
debug3: put_host_port: [192.168.0.13]:23
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
...
debug1: Next authentication method: publickey
debug1: Trying private key: /var/www/.ssh/id_rsa
debug3: no such identity: /var/www/.ssh/id_rsa
debug1: Trying private key: /var/www/.ssh/id_dsa
debug3: no such identity: /var/www/.ssh/id_dsa
debug1: Trying private key: /var/www/.ssh/id_ecdsa
debug3: no such identity: /var/www/.ssh/id_ecdsa
debug2: we did not send a packet, disable method
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
pi@192.168.0.13's password: - I TYPED PASSWORD -
...
debug2: channel_input_status_confirm: type 99 id 0
debug2: PTY allocation request accepted on channel 0
debug2: channel 0: rcvd adjust 2097152
debug2: channel_input_status_confirm: type 99 id 0
debug2: shell request accepted on channel 0
Linux raspberrypi 3.6.11+ #350 PREEMPT Mon Jan 7 21:51:11 GMT 2013 armv6l

如果要查看程序名称/ PID,请netstat -tlpn以root身份运行(或使用sudo)。如果您不太熟悉Linux管理,从默认端口移动SSH似乎不是一个好主意。
布鲁诺

1
以#开头的行是注释,因此在您指定端口23的行中您之前拥有#,它将不会被处理,因此它将使用标准端口(22)。您还可以在/etc/hosts.allow或/etc/hosts.deny中设置一些内容,以控制谁可以连接到sshd。您是否检查过网络中的IP地址是否没有冲突?
Pipe

Answers:


8

sshd正在监听端口23,但正在连接到端口22(ssh的默认设置)。

尝试这个:

  pi@raspberrypi:~$ ssh -vvv 192.168.0.13 -p 23

“拒绝连接”错误表示内核中的TCP层不接受该端口上的任何连接。它与维持生命无关。

另外,您正在使用arp中查找内容,但是更好的工具是nmaparp仅告诉您IP是否在您的广播域中,而不告诉您是否有任何端口打开。


您好,谢谢您的答复,我已经尝试过pi @ raspberrypi:〜$ nmap -bash:nmap:命令未找到...我需要安装它吗?还有覆盆子吗?也感谢您的纠正,我用-p 23进行了编辑,但是它没有任何看起来

nmap并不是真正需要的,只是一个方便的工具。您所做的更新似乎已使它正常工作?
巴特·

5

引用文档

从2016年11月发行版开始,Raspbian默认情况下禁用SSH服务器。您将必须手动启用它。

要通过控制台在计算机上启用SSH,请执行以下操作:

sudo raspi-config在终端中输入,首先选择advanced options,然后导航到ssh,按Enter并选择Enable or disable ssh server

为无头计算机启用SSH:

对于无头设置,可以通过将一个ssh没有任何扩展名的文件放置在SD卡的启动分区上来启用S​​SH 。


@techraf在以下相关问题中的答案复制粘贴:SSH无法与全新安装配合使用


尽管这可以从技术上回答这个问题,但我不确定techraf是否会对您刚刚复制并粘贴他们的回答感到满意。但是,如果您在发布此帖子之前要求他们的许可,那就不一样了。
达斯·维达

1
在部分“服务条款”(第3节)是这里贡献都被认为有一个知识共享署名相同方式共享许可,这样再拨款为这些条款之内。 但是,这里的答案并不多,因为sshd正在运行的问题非常清楚,而且问题早于2016
。– goldilocks

@DarthVader我将此发布为社区答案,对作者给予了应有的重视,我认为就足够了。
Delgan'3

1
@goldilocks您可能已经猜到了,这个问题出现在Google搜索结果的最上方,有关Raspberry Pi拒绝ssh connexion的问题。我相信这将帮助人们更快地找出可能的问题。
Delgan'3

在当前最新的(Raspbian Stretch)上,SSH配置位于5)接口选项-> P2)SSH
R2RT

1

今天早上我遇到了同样的问题,并通过删除和安装openssh-server来解决此问题:

sudo apt-get remove openssh-server 
sudo apt-get install openssh-server

您好,欢迎来到Stack Exchange!请考虑添加更深入的说明,以使将来的读者受益。
NULL

0

我遇到了同样的问题,我的解决方案是禁用和卸载iptables。

运行这些命令:

(作为sudoer)

iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT

sudo apt-get删除--purge iptables



0

使用PIXEL OS更新Delgan对Raspberry pi 3,RASPBIAN JESSIE的回答

在终端

sudo raspi-config 

选择接口选项-> SSH。按Enter键,然后选择启用或禁用ssh服务器


0

我不确定我的提示是否会有所帮助。我遇到了同样的问题,并且是Linux世界的新手。阅读Raspberry Pi文档后,我发现问题出在禁用SSH的Pi配置中。

单击Raspberry Pi菜单->首选项->启动Raspberry Pi配置导航到“接口”选项卡选择“ SSH”旁边的“启用”。单击“确定”,这解决了我的问题。请尝试让我知道。


-1

sudpi@raspberrypi:~$ sudo netstat -tlpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1817/apache2
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN      2227/vsftpd
tcp        0      0 127.0.0.1:3350          0.0.0.0:*               LISTEN      1784/xrdp-sesman
tcp        0      0 0.0.0.0:23              0.0.0.0:*               LISTEN      3115/sshd
tcp        0      0 0.0.0.0:3389            0.0.0.0:*               LISTEN      1781/xrdp
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      2397/mysqld

这是一个很好的开始,可以检查问题所在,但不足以回答问题:-(
Morgan Courbet

-1

我遇到了同样的问题,但在运行命令后已解决

sudo apt-get remove --purge iptables。并关闭无线连接。


-1

有2个配置文件/ etc / ssh / ssh_config和/ etc / ssh / sshd_config

将端口从22更改为两个文件中的任意值。

重新启动服务 sudo service ssh restart


但是...这仅在您将ssh:插入同一台计算机时才有效。那有什么意义呢?
Bex
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.