이런 일이 최근에야 일어나기 시작했습니다. SSH를 사용하여 github에 연결할 수 없습니다. 로컬 네트워크의 다른 컴퓨터에 연결할 수 있고 다른 컴퓨터를 사용하여 데스크톱에 실패한 것과 동일한 이더넷 연결을 사용하여 github에 연결할 수 있습니다. 연결 시간 초과를 방지하고 github에 성공적으로 연결하는 방법은 무엇입니까?
명확성을 위해 편집: SSH를 통해 연결할 수 있는 다른 공용 서비스를 모르기 때문에 SSH 대상으로 github을 사용하고 있습니다. 나는 거절당하고 싶지 않기 때문에 github이 나의 유일한 선택입니다. 문제의 근본 원인은 어느 포트에서나 SSH 서비스에 액세스할 수 없다는 것입니다. ssh -Tvvv
IP 주소(localhost 제외)에 관계없이 동일한 출력을 얻습니다.
진단:
$ ssh -Tvvv github.com
OpenSSH_8.8p1, OpenSSL 1.1.1l 24 Aug 2021
debug1: Reading configuration data /home/dan/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug3: expanded UserKnownHostsFile '~/.ssh/known_hosts' -> '/home/dan/.ssh/known_hosts'
debug3: expanded UserKnownHostsFile '~/.ssh/known_hosts2' -> '/home/dan/.ssh/known_hosts2'
debug2: resolving "github.com" port 22
debug3: resolve_host: lookup github.com:22
debug3: ssh_connect_direct: entering
debug1: Connecting to github.com [140.82.112.4] port 22.
debug3: set_sock_tos: set socket 3 IP_TOS 0x48
debug1: connect to address 140.82.112.4 port 22: Connection timed out
ssh: connect to host github.com port 22: Connection timed out
$ nmap -p 22 github.com
Starting Nmap 7.92 ( https://nmap.org ) at 2021-12-26 21:54 EST
Nmap scan report for github.com (140.82.112.4)
Host is up (0.015s latency).
rDNS record for 140.82.112.4: lb-140-82-112-4-iad.github.com
PORT STATE SERVICE
22/tcp filtered ssh
Nmap done: 1 IP address (1 host up) scanned in 0.26 seconds
$ screenfetch -n
dan@dan-ms7d09
OS: Manjaro 21.2.0 Qonos
Kernel: x86_64 Linux 5.10.84-1-MANJARO
Uptime: 17h 58m
Packages: 1499
Shell: zsh 5.8
Resolution: 5760x1080
DE: GNOME
WM: i3
GTK Theme: Adwaita [GTK2/3]
Icon Theme: Adwaita
Font: Cantarell 11
Disk: 479G / 955G (53%)
CPU: Intel Core i9-10850K @ 20x 5.2GHz [35.0°C]
GPU: NVIDIA GeForce RTX 2060
RAM: 9225MiB / 32002MiB
답변1
이 문제를 해결하려면 몇 가지 단계가 있습니다. 먼저 이름 확인이 올바르게 완료되었는지 확인해야 합니다. 이것은 나에게 괜찮아 보이고 140.82.112.4
GitHub의 IP 주소 중 하나이므로 이름 확인이 정확합니다.
하지만 Github의 포트 22 상태가 filtered
문제입니다. nmap에 따르면포트 스캐닝 기본 사항:
패킷 필터링으로 인해 프로브가 포트에 도달하지 못하기 때문에 Nmap은 포트가 열려 있는지 여부를 확인할 수 없습니다. 필터링은 전용 방화벽 장치, 라우터 규칙 또는 호스트 기반 방화벽 소프트웨어에서 이루어질 수 있습니다. 이러한 포트는 정보를 거의 제공하지 않기 때문에 공격자에게 실망감을 줍니다. 때로는 유형 3 코드 13(대상 도달 불가: 통신 관리 거부)과 같은 ICMP 오류 메시지로 응답하지만 필터가 응답하지 않고 단순히 프로브를 삭제하는 것이 더 일반적입니다. 이렇게 하면 필터링이 아닌 네트워크 정체로 인해 프로브가 삭제될 경우 Nmap이 여러 번 재시도하게 됩니다. 이렇게 하면 스캔 속도가 상당히 느려집니다.
따라서 문제를 확인할 수 있는 몇 가지 장소가 있습니다.
먼저, 컴퓨터에 이 IP 주소와 포트 번호에 대한 연결을 차단하는 방화벽 규칙이 없는지 확인해야 합니다.
둘째, 해당 주소에 연결하는 것을 방해할 수 있는 방화벽 장치가 로컬 네트워크에 있는지 확인하세요.
세 번째 가능성은 과도한 시도나 기타 유사한 이유로 인해 Github 서버에서 귀하의 IP 주소를 금지했을 가능성입니다. 프록시나 일종의 VPN을 사용하여 인터넷에 연결하는 경우 이런 일이 발생할 수 있습니다. VPN과 프록시 도구의 공유 IP 주소는 종종 이러한 문제를 야기합니다. 내 제안은 연결이나 IP 주소를 어떻게든 변경하는 것입니다. ADSL 연결을 사용하는 경우 ADSL 모뎀을 다시 시작하면 새 IP 주소가 제공될 수 있습니다. VPN이나 어떤 종류의 프록시도 사용하지 않는다면 VPN을 사용해 보고 차이가 있는지 확인하세요.
도움이 되기를 바라며 행운을 빕니다.
답변2
나는 한동안 이 문제로 어려움을 겪다가 우연히 GitHub 지원에서 다음 도움말 페이지를 발견했습니다.
https://docs.github.com/en/authentication/troubleshooting-ssh/using-ssh-over-the-https-port
내 직장에는 GitHub에 대한 정기적인 Git SSH 액세스를 "거의" 허용하는 방화벽/포트 보호의 올바른 마법 조합이 있는 것으로 나타났습니다. 즉, "가끔" 작동하지만 신뢰할 수 없습니다. ;-비
내 파일에 SSH Over HTTPS를 사용하라는 주문이 있어서 $HOME/.ssh/config
갑자기 GitHub의 SSH 키를 통해 명령줄에서 내 GitHub 저장소에 액세스할 수 있었습니다.
Host github.com
User git
Hostname ssh.github.com
Port 443
PreferredAuthentications publickey
IdentityFile /home/XXX/.ssh/github_id_rsa
TCPKeepAlive yes # not sure if truly needed
IdentitiesOnly yes # not sure if truly needed
답변3
FWIW MacOS Monterey 12.7.2에서 이 문제가 발생했습니다.
SSH 키를 다시 생성하고(이것이 중요한 비트인지 확실하지 않음) 다음
~/.ssh/config
으로 변경했습니다.
Host github.com
AddKeysToAgent yes
IdentityFile ~/.ssh/id_ed25519
UseKeychain no