我有一个已经使用了几年的ec2实例,它被用于多种用途。但不能ssh到实例,因为它说连接被拒绝。我停止了实例并将卷分离并将其附加到新实例上以检查ssh配置,实际上我已使用默认值替换了当前配置,并添加了一行名为UseDNS no
的行。我没有运气。
我尝试使用aws的用户数据运行脚本,这肯定不起作用。我将服务器的卷安装到新服务器上并编写了一个BASH脚本来启动netcat,确保ssh服务正在运行并且防火墙端口已打开并在/etc/rc.local
中添加了一个命令以提供运行脚本的可执行权限。我不确定启动脚本是否正在运行,或者是否有关于如何解决此问题的其他建议?
sshd_config如下所示:
Port 22
ListenAddress 0.0.0.0
SyslogFacility AUTHPRIV
PermitRootLogin yes
PermitRootLogin forced-commands-only
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication yes
ChallengeResponseAuthentication no
UsePAM yes
X11Forwarding yes
PrintLastLog yes
UsePrivilegeSeparation sandbox # Default for new installations.
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
Subsystem sftp /usr/libexec/openssh/sftp-server
UseDNS no
ssh_config与Default相同。
SSH详细输出:
OpenSSH_7.3p1, LibreSSL 2.4.1
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 20: Applying options for *
debug2: resolving "x.x.x.x" port 22
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to x.x.x.x [x.x.x.x] port 22.
debug1: connect to address x.x.x.x port 22: Connection refused
ssh: connect to host x.x.x.x port 22: Connection refused
Nmap结果:
PORT STATE SERVICE
22/tcp closed ssh
80/tcp open http
110/tcp open pop3
143/tcp open imap
443/tcp closed https
993/tcp open imaps
995/tcp open pop3s
8080/tcp closed http-proxy
服务器配置了aws凭据。我正在运行的BASH脚本如下所示:
#!/bin/bash
sudo apt-get install ssh netcat -y
iptables -A INPUT -p tcp -s 0.0.0.0/0 --dport 22 -j ACCEPT
sudo service ssh stop
sudo service ssh start
sudo touch /home/ubuntu/logs
sudo service --status-all >> /home/ubuntu/logs
sudo aws s3 cp /home/ubuntu/logs s3://recover-server
sudo nc -l 9999 &
我无法通过SSH连接到服务器,因为它仍然表示连接被拒绝,我尝试使用pem密钥,并且我还将我的公钥添加到authorized_hosts文件中。我也无法连接netcat反向shell。我已将安全组中的IP地址列入白名单。在使用NMAP进行端口扫描时,端口22关闭。有关如何处理此问题并恢复服务器的任何建议?