SSH:连接到主机本地主机端口 22:连接被拒绝

SSH:连接到主机本地主机端口 22:连接被拒绝

在 debian kali 中我尝试连接 ssh 并收到以下错误:

SSH:连接到主机本地主机端口 22:连接被拒绝

背景 :

我尝试在 Debian 中连接 ssh,我使用的是 kali 2.0 sana

我已尝试/做过的事情:

`apt-get install openssh-server`

安装了 openssh-server 及其最新版本

查询的服务ssh status

● ssh.service - OpenBSD Secure Shell server
   Loaded: loaded (/lib/systemd/system/ssh.service; enabled)
   Active: active (running) since Wed 2015-09-23 17:20:36 IST; 36min ago
 Main PID: 1594 (sshd)
   CGroup: /system.slice/ssh.service
           └─1594 /usr/sbin/sshd -D

重新配置 dpkg-reconfigure openssh-server 也成功了

现在我尝试连接ssh root@localhost,需要 root@localhost 密码,所以我所做的是

vi /etc/ssh/sshd_config并添加拒绝 root 登录的命令:

我的 sshd_config 如下:

What ports, IPs and protocols we listen for Port 22
#Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0 Protocol 2
# HostKeys for protocol version 2 HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key HostKey /etc/ssh/ssh_host_ecdsa_key HostKey /etc/ssh/ssh_host_ed25519_key
#Privilege Separation is turned on for security UsePrivilegeSeparation yes

现在再次尝试通过“ssh root@localhost”连接 ssh,但没有成功connect to host localhost port 22: Connection refused

我认为我iptables可能会阻止它,因此将其配置为:

vim /root/firewall.rules
root@vignesh:~# iptables-save > /root/firewall.rules
root@vignesh:~# iptables -X
root@vignesh:~# iptables -t nat -F
root@vignesh:~# iptables -t nat -X
root@vignesh:~# iptables -t mangle -F
root@vignesh:~# iptables -t mangle -X
root@vignesh:~# iptables -P INPUT ACCEPT
root@vignesh:~# iptables -P FORWARD ACCEPT
root@vignesh:~# iptables -P OUTPUT ACCEPT
root@vignesh:~# iptables-save > /root/firewall.rules

我问iptables-save

# Generated by iptables-save v1.4.21 on Wed Sep 23 18:50:34 2015
*mangle
:PREROUTING ACCEPT [41217:4171959]
:INPUT ACCEPT [27727:3255690]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1834:219528]
:POSTROUTING ACCEPT [1835:219654]
COMMIT
# Completed on Wed Sep 23 18:50:34 2015
# Generated by iptables-save v1.4.21 on Wed Sep 23 18:50:34 2015
*nat
:PREROUTING ACCEPT [15456:1179155]
:INPUT ACCEPT [1858:255303]
:OUTPUT ACCEPT [223:14078]
:POSTROUTING ACCEPT [223:14078]
COMMIT
# Completed on Wed Sep 23 18:50:34 2015
# Generated by iptables-save v1.4.21 on Wed Sep 23 18:50:34 2015
*filter
:INPUT ACCEPT [26756:3173280]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1775:215770]
COMMIT

根据评论检查

root@vignesh:~# netstat -an | grep 22
tcp        0      0 10.100.8.40:54036       216.58.220.46:80        ESTABLISHED
tcp        0      0 10.100.8.40:41573       216.58.220.14:80        ESTABLISHED
unix  3      [ ]         STREAM     CONNECTED     17722    @/tmp/dbus-JUNz9GwSon
unix  3      [ ]         STREAM     CONNECTED     13422    
unix  3      [ ]         STREAM     CONNECTED     17224    
unix  3      [ ]         STREAM     CONNECTED     17422    
unix  2      [ ]         DGRAM                    9222     
unix  3      [ ]         STREAM     CONNECTED     17221    /var/run/NetworkManager/private
unix  3      [ ]         STREAM     CONNECTED     17225    /var/run/NetworkManager/private
unix  3      [ ]         STREAM     CONNECTED     17229    
unix  3      [ ]         STREAM     CONNECTED     17220 

现在我再次尝试ssh root@localhost但仍然出现错误。

请告诉我我遗漏了哪个部件?我该如何连接它?

答案1

您的netstat输出显示没有进程正在监听端口22,这可以解释为什么您Connection refused在尝试 SSH 时会得到一个。

status关于守护进程的信息显示sshd正在运行,但是没有与之关联的监听端口(或似乎没有)。

此外,正如评论中所说,您的sshd_config文件似乎不正确。您说要禁用 root 登录,因此我将为您的 SSH 守护程序提出一个配置建议。

编辑该/etc/ssh/sshd_config文件并将以下内容放入其中:

Port 22
Protocol 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
UsePrivilegeSeparation yes
KeyRegenerationInterval 3600
ServerKeyBits 1024
SyslogFacility AUTH
LogLevel INFO
LoginGraceTime 120
PermitRootLogin no
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes
IgnoreRhosts yes
RhostsRSAAuthentication no
HostbasedAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
UsePAM yes
ClientAliveInterval 30
ClientAliveCountMax 99999

如果您担心安全问题,您可以限制 SSH 仅供您想要的用户使用。例如,如果您想限制只有用户vignesh可以使用 SSH,您可以添加另一个指令,如下所示:

AllowUsers vignesh

之后,只需重新启动sshd服务即可。完成后,如果您运行,netstat -atpn | grep 22您应该会看到端口22正在监听所有人。

答案2

我看不出您是否真的添加了此行,或者取消了对它的注释: 端口 22

如果 sshd_config 中未指定端口,sshd 将不会监听任何端口。根据 netstat 的输出,这可能是问题所在。

答案3

首先确保你的 root 账户已设置密码 如果 root 没有密码,您可以sudo passwd root输入 root 的新密码。

-v然后您可以使用详细输出选项通过 SSH 进行登录:

ssh root@localhost -v

如果连接仍然被拒绝,请发布ssh root@localhost -v命令的输出。

答案4

今天我突然想到了这一点。根据这个关联, “Kali Linux 没有启用 SSH”

相关内容