VScode 원격 서버, SSH 및 VPNC에 대한 최근 질문에 대해 찾은 솔루션을 작성하고 게시하고 있습니다. 네, 시간을 많이 낭비했습니다. 여러분의 시간을 절약할 수 있기를 바랍니다.
질문
기본 ubuntu VPN 클라이언트 cisco 호환(vpnc)을 사용하려면 VPN 클라이언트를 변경해야 했습니다. VPN을 설정한 후 원격 SSH 시스템에 액세스할 수 없습니다. 그러나 컴퓨터에 ping을 보낼 수 있습니다.
답변1
디버깅한 후 ssh -v ...
다음 오류가 발생했습니다.
expecting SSH2_MSG_KEX_ECDH_REPLY
이 문제를 해결하려면(다른 링크), /etc/ssh/ssh_config
다음 줄을 편집하기 전에:
# MACs hmac-md5,hmac-sha1,[email protected],hmac-ripemd160
MACs hmac-sha1
좋아요 이제 터미널을 통한 SSH가 제대로 작동합니다.
그 후 원격 컴퓨터를 통해 Vscode를 열려고 했지만 다음 오류가 발생했습니다.
Remote-SSH hangs on "Setting up SSH Host <remote> (details) Initializing VS Code Server"
기본적으로 무기한 정지되고 잠시 후 연결 시간 초과가 반환됩니다.
이 사이트의 모든 답변과 게시물을 살펴본 후 터미널을 보고 연결이 설정되는 것을 볼 수 있으므로 문제가 MTU와 관련된 것으로 의심됩니다. 또한 .vscode_server
원격 시스템에서 삭제했으므로 호스트에서 원격으로 실행 파일을 업로드해야 한다는 것을 알고 있습니다.
MTU 문제를 확인하기 위해 다음 명령을 실행했습니다.
scp file_large user@host
결과? 명령을 실행하자마자 복제가 중지됩니다. MTU 문제는 이제 대부분 확인되었습니다.
MTU 문제 수정
사용 가능한 최대 MTU 크기를 테스트하기 위해 ping 명령을 사용하여 서버에 ping을 실행했습니다.
ping -M do -s 1500 remote_ip
명령이 반환되지 않을 때까지 MTU 크기(이 경우 1500)를 줄입니다.
ping: local error: message too long, mtu=1500
MTU 크기(내 것은 1370)를 찾은 후 VPN 터널 이름의 MTU를 변경했습니다.
sudo ifconfig your_tunnel_name mtu 1370 up
그리고 scp 명령이 제대로 작동하는지 테스트했습니다. 불행하게도 이 명령은 영구적이지 않으므로 만들어야 합니다.영구적으로:
아래에 파일을 만듭니다./etc/network/if-up.d
그리고
#!/bin/sh
if [ "$IFACE" = "your_tunnel_name" ]; then
sudo ifconfig your_tunnel_name mtu 1300
fi
참고: 파일을 실행 가능하게 만드세요.
이제 내 컴퓨터에 액세스할 수 있습니다!