4

У меня машина с Linux под управлением Centos 7. Я пытаюсь ssh в машину, используя шпаклевку или WinScp и не могу этого сделать.

Я открыл порт ssh, используя:sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

Я выложил открытый ключ в файл author_key. Я отредактировал файл /etc/ssh/sshd_config и включил PublickeyAuthentication .

После этого я перезапустил службу sshd: systemctl restart sshd.service .

Тем не менее, я не могу добраться до серверов. Я думал, что это может быть проблемы с подключением к Интернету, но я могу выходить в интернет с компьютера. Ошибка, которую я получаю от замазки при соединении: Network error: Connection timed out .

Что мне не хватает? как я могу решить эту проблему? Любая помощь будет оценена. Спасибо.

3 ответа3

2

Я считаю, что --dport является частью модуля tcp и для его использования требуется опция -m tcp . Полная команда для приема входящего TCP-порта 22 будет:

sudo iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
2
iptables -A INPUT -i venet0 -m state --state ESTABLISHED,RELATED -j ACCEPT -m comment --comment "ALLOW ESTABLISHED connections"
iptables -A INPUT -i venet0 -p tcp --dport 22 -m state --state NEW -j ACCEPT -m comment --comment "ALLOW new SSH connections"

замените venet0 на ваш сетевой интерфейс , например eth0

если это не сработает, каков вывод netstat -tulpen | grep ':22' или lsof -4 и iptables -L -v -n

-m tcp не требуется для --dport

0

Вам необходимо правильно устранить проблему - шаг за шагом.

  1. порт открыт (netstat)
  2. пакеты достигают хоста (tcpdump)
  3. как машина отвечает; куда отправляются ответные пакеты (tcpdump)
  4. проверьте все правила брандмауэра; возможно, что другое правило совпадает (iptables)
  5. проверить маршрутизацию; у вас может быть даже несколько таблиц маршрутизации (ip route)

Было бы проще устранить неполадки брандмауэра, если бы вы могли временно отключить его, но это не всегда вариант.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .