Windows 10 Linux Subsystem 내 원격 서버로 ssh하려고합니다. MS Windows 10 Home Insider Preview 빌드 14366을 사용하고 있습니다.
명령 프롬프트에서 다음을 입력하십시오.
ssh user@domain.com
ssh 명령을 입력 한 후 몇 초 후에 다음 메시지가 표시됩니다.
SSH : 호스트 domain.com 포트 22에 연결 : 리소스를 일시적으로 사용할 수 없음
Git Bash 내에서 Putty와 ssh를 사용하여 성공적으로 연결할 수 있습니다.
따라서 문제가 로컬 PC, 특히 Linux 하위 시스템에 있다고 생각합니다. Linux 환경에서는 여전히 매우 친환경적이며이 메시지를 해석하는 방법을 잘 모르겠습니다. 어떤 리소스를 사용할 수 없으며, 사용할 수 있도록하려면 어떻게해야합니까?
답변
내가 알 수있는 한, 이것은 WSL의 버그입니다. Microsoft가 다음 빌드에서이 문제를 해결하기를 바랍니다. 그러나 지금은 약간 못생긴 해킹을 사용할 수 있습니다.
업데이트 # 1 : 확실히 버그. Github 에서이 문제 를 발견 했습니다 . 이 모든 것을 끝내고 싶지 않다면 쉘을 다시 시작하는 해결책을 제안했습니다.
TL; DR SSH 설정을 끝내려면 이것을 추가하십시오 (보통 ~/.ssh/config
) :
Host *
ProxyCommand nc %h %p %r
그것이 작동하는 이유는 다음과 같습니다 우리의 SSH 문제 때문에 방화벽 문제가되지 않습니다 nc
및 telnet
작업 동일한 호스트와 포트 (시도에 telnet <host> <port>
나 nc <host> <port>
: 당신은 같은 것을 참조한다 SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.7
). 이것은 우리가 유리하게 사용할 수 있습니다.
SSH를 사용하면 표준 입력을 받아 ProxyCommand
옵션을 통해 서버의 포트로 보내는 프록시를 사용할 수 있습니다. 일반적으로 점프 호스트라고도하는 중간에있는 요새 SSH 서버를 사용하여 보호 된 호스트에 네트워크로 터널링하는 데 사용됩니다 (자세한 내용은 이 링크 참조 ).
이 핵은 SSH에게 점프 호스트가없는 프록시를 사용하도록 지시합니다. 따라서 모든 네트워크 리소스 할당을 Netcat으로 푸시하여 SSH의 TCP 리소스 할당에 실패했습니다. SSH는 네트워크 연결없이 SSH 작업을 수행하며 Netcat은 TCP 연결을 통해 원시 데이터를 SSH 서버로 보냅니다.
경고 : 이렇게하면 ProxyCommand
모든 호스트의가 수정되므로을 사용하는 다른 SSH 구성 호스트와 상호 작용하는 방법을 모르겠습니다 ProxyCommand
. 이것을 테스트 할 수있는 몇 대의 서버가 있으며이 답변을 결과로 업데이트 할 것입니다. 유해한 부작용이 없을 가능성이 있지만 보장 할 수는 없습니다.
업데이트 # 2 : 몇 대의 서버로 몇 가지 테스트를 수행했는데 작동하는 것 같습니다. SSH는 여러 항목이 적용될 때 구성에서 최상위 항목을 사용합니다. 따라서이 ProxyCommand
핵 위에 존재 하는 기존 선물은 그것을 대체 할 것입니다. 새 SSH 명령이 실행될 때 SSH 구성을 다시 읽고 다른 항목이없는 경우 ProxyCommand
SSH는 hack을 사용 ProxyCommand
하여 “가장 바깥 쪽”SSH 세션에만 적용 할 수 있습니다. 경고의 말씀 : 설정 파일의 맨 위에 (또는 SSH하려는 항목 위에) 해킹을 넣으면 SSH 세션이 필요한 SSH 세션이 ProxyCommand
다른 세션을 무시 ProxyCommand
하고 대신 호스트 주소를 확인하고 연결을 시도합니다. Netcat으로 직접.
답변
이것은 또한 나에게 문제였으며, bash의 모든 인터넷 트래픽을 차단하는 내 (Symantec) 방화벽이었습니다.
프로세스를 인식하지 못하는 타사 방화벽 공급자의 일반적인 문제인 것 같습니다.
https://github.com/Microsoft/BashOnWindows/issues/809
방화벽을 비활성화하면 정상적으로 작동합니다. 현재 더 나은 솔루션을 찾을 수 없습니다.
답변
제 경우에는 Windows 업데이트로 인해 Hyper-V 스위치에 문제가 발생 하여이 오류가 발생했습니다 . 내가 ssh하려는 호스트가 해당 스위치에 연결되어 ssh를 복원하는 것으로 나타났습니다.
답변
나중에 참조 할 수 있도록 Nginx를 설치하면 기본적으로 SSH가 차단되지 않고 “자원을 일시적으로 사용할 수 없습니다”라는 오류 메시지가 표시됩니다.
sudo ufw 허용 ssh