Невозможно получить клон по SSH из Bitbucket с определенных серверов

У нас есть экземпляр Bitbucket Server, размещенный в AWS. С некоторых других серверов AWS (в другом регионе) git clone по SSH завершается неудачно с

ssh: connect to host (hostname) port 7999: Connection refused

Однако другие серверы в AWS (в том же регионе, что и сервер Bitbucket) могут успешно клонировать по SSH, используя тот же URL-адрес.

Дополнительная информация:

  • Bitbucket определенно прослушивает порт 7999:

    $ sudo netstat -tnlp | grep :7999
    
    tcp6 0 0 :::7999 :::* LISTEN 20707/java  
    

    (процесс 20707 является основным процессом Bitbucket)

  • Bitbucket работает за Apache в качестве обратного прокси-сервера для предоставления SSL.

  • tcptraceroute и mtr на порту 7999 из экземпляра, который не может клонироваться в Bitbucket на порту 7999, успешно подключаются.
  • Открытый ключ для пары ключей, используемой экземпляром, который не может подключиться, добавляется к ключам доступа хранилища с доступом для чтения в Bitbucket.
  • В группах безопасности AWS группа экземпляра клонирования разрешает все исходящие подключения, а группы сервера Bitbucket разрешают подключения из любого места через порт 7999.
  • Результаты tcpdump на порту 7999 на экземпляре клонирования:

    tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
    
    16:56:53.348387 IP (tos 0x0, ttl 64, id 61715, offset 0, flags [DF], proto TCP (6), length 60)
    (cloning server's hostname).38606 > (bitbucket server's hostname).irdmi2: Flags [S], cksum 0x2799 (incorrect -> 0xb1db), seq 3675985409, win 26883, options [mss 8961,sackOK,TS val 1512892178 ecr 0,nop,wscale 7], length 0
    
    16:56:53.489908 IP (tos 0x0, ttl 252, id 37586, offset 0, flags [none], proto TCP (6), length 40)
    (bitbucket server's hostname).irdmi2 > (cloning server's hostname).38606: Flags [R.], cksum 0x24e4 (correct), seq 1472002966, ack 3675985410, win 26883, length 0
    
  • Результаты ssh'ing с сервера клонирования в Bitbucket:

     $ sudo ssh -vvv -p 7999 ssh://git@stash.tddevops.com
     OpenSSH_6.6.1, OpenSSL 1.0.1e-fips 11 Feb 2013
     debug1: Reading configuration data /root/.ssh/config
     debug1: Reading configuration data /etc/ssh/ssh_config
     debug1: /etc/ssh/ssh_config line 56: Applying options for *
     debug2: ssh_connect: needpriv 0
     debug1: Connecting to stash.tddevops.com [172.24.16.201] port 7999.
     debug1: connect to address 172.24.16.201 port 7999: Connection refused
     ssh: connect to host stash.tddevops.com port 7999: Connection refused
    
  • tcpdump на сервере Bitbucket не показывает данных при попытке клонирования.

2 ответа

Решение

Я выяснил проблему; это была внешняя проблема с брандмауэром нашего отдела безопасности. Ничего не нужно менять на сервере клонирования или сервере Bitbucket.

С /questions/503006/slishkom-mnogo-nepravilnyih-oshibok-kontrolnoj-summyi-v-tcpdump/503013#503013:

Вы видите "неправильные" контрольные суммы из-за функции, называемой разгрузкой контрольной суммы TCP. Поля контрольной суммы для исходящих пакетов TCP предварительно не рассчитываются операционной системой, а вместо этого устанавливаются в 0 и оставляются для расчета процессором NIC. В FAQ по Wireshark есть более подробное объяснение.

Это может помочь, но ваша проблема звучит как проблема с брандмауэром. Не мешало бы убедиться, что на этом размещенном сервере AWS не работает внутренний брандмауэр. Не зная, какую ОС вы используете, я не могу по-настоящему размышлять о том, что искать. Многие операционные системы Linux используют iptables. Например, вы можете увидеть здесь, как отключить и отключить брандмауэр для Oracle Linux или Redhat Linux.

Другие вопросы по тегам