성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
MathJax 입력기
최근 덧글
[정성태] How can I tell whether two programs...
[정성태] The case of the fail-fast crashes c...
[정성태] Creating Docker multi-arch images f...
[정성태] BinaryFormatter removed from .NET 9...
[정성태] Extending the Windows Shell Progres...
[우광현] 와..... 범위를 잡았으니 클라이언트가 해당 범위를 확인해본다...
[정성태] 딱히, 그것 이상으로 더 설명할 내용이 없습니다. 동적 포...
[정성태] If Windows 3.11 required a 32-bit p...
[정성태] What is a hard error, and what make...
[괴물신인] 질문작성자인데 이 글을 이제봤네요 ㄷㄷ 이 글처럼 타입별로 인...
글쓰기
제목
이름
암호
전자우편
HTML
홈페이지
유형
제니퍼 .NET
닷넷
COM 개체 관련
스크립트
VC++
VS.NET IDE
Windows
Team Foundation Server
디버깅 기술
오류 유형
개발 환경 구성
웹
기타
Linux
Java
DDK
Math
Phone
Graphics
사물인터넷
부모글 보이기/감추기
내용
<div style='display: inline'> <h1 style='font-family: Malgun Gothic, Consolas; font-size: 20pt; color: #006699; text-align: center; font-weight: bold'>Visual Studio Code에서 Remote-SSH 연결 시 "Opening Remote..." 단계에서 진행되지 않는 문제</h1> <p> 이상하군요. 지금까지 테스트한 CentOS 7이나 Ubuntu 18.04에는 Visual Studio Code의 Remote-SSH 연결이,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > 로컬의 Visual Studio Code로 원격 리눅스 머신에 접속해 개발하는 방법 ; <a target='tab' href='http://www.sysnet.pe.kr/2/0/11942'>http://www.sysnet.pe.kr/2/0/11942</a> </pre> <br /> 잘 되었는데, <a target='tab' href='http://www.sysnet.pe.kr/2/0/11705'>Synology DS216+II 버전의 리눅스</a>에는 접속 시 Visual Studio Code 에디터의 좌측 하단 상태 창에 "Opening Remote..."라는 메시지와 함께 더 이상 진행이 안 됩니다. 물론, 단일 ssh.exe로는 접속이 잘 되는 환경입니다.<br /> <br /> Process Explorer로 확인해 본 결과, Visual Studio Code가 사용하는 ssh.exe는 "C:\Windows\System32\OpenSSH\ssh.exe" 경로의 것이고, CentOS 7 등에 접속했을 때, 즉 정상적으로 동작할 때는 다음과 같이 포트 점유가 나오는 반면,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > // Visual Studio Code의 자식 프로세스로 확인된 ssh.exe의 명령행 // ssh centos7 -N -L localhost:59253:localhost:40333 C:\temp> <span style='color: blue; font-weight: bold'>netstat -ano | findstr 59253</span> TCP 127.0.0.1:11140 127.0.0.1:59253 ESTABLISHED 23356 // code.exe TCP 127.0.0.1:11141 127.0.0.1:59253 ESTABLISHED 23356 // code.exe TCP 127.0.0.1:59253 0.0.0.0:0 LISTENING 8988 // ssh.exe TCP 127.0.0.1:59253 127.0.0.1:11140 ESTABLISHED 8988 // ssh.exe TCP 127.0.0.1:59253 127.0.0.1:11141 ESTABLISHED 8988 // ssh.exe TCP [::1]:59253 [::]:0 LISTENING 8988 // ssh.exe </pre> <br /> DS216+II에 접속했을 때는 다음과 같이 단순하게 나왔습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > // Visual Studio Code의 자식 프로세스로 확인된 ssh.exe의 명령행 // ssh nas -N -L localhost:27663:localhost:41388 C:\temp> <span style='color: blue; font-weight: bold'>netstat -ano | findstr 27663</span> TCP 127.0.0.1:27663 0.0.0.0:0 LISTENING 4236 // ssh.exe TCP [::1]:27663 [::]:0 LISTENING 4236 // ssh.exe </pre> <br /> 이걸로는 원인을 알 수가 없었지만, 분명히 ssh.exe는 실행이 되었고 어떤 이유로 인해 ssh가 tunneling 식으로 동작하지 못하는 듯합니다. (물론 22번 sshd로의 연결은 된 상태입니다.)<br /> <br /> <hr style='width: 50%' /><br /> <br /> 원인 파악을 위해 Visual Studio Code의 Remote-SSH 진단 로그를 볼 수 있도록 %APPDATA%\Code\User\settings.json에 다음과 같은 설정을 추가했습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > // Place your settings in this file to overwrite the default settings { "editor.fontFamily": "Malgun Gothic", "window.zoomLevel": 0, "terminal.integrated.fontFamily": "Consolas", "terminal.integrated.shell.windows": "C:\\WINDOWS\\System32\\cmd.exe", <span style='color: blue; font-weight: bold'>"remote.SSH.showLoginTerminal": true,</span> } </pre> <br /> 이후 출력되는 콘솔 창의 로그는 다음과 같았고,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > Connected to SSH Host - Please do not close this terminal channel 3: open failed: administratively prohibited: open failed channel 3: open failed: administratively prohibited: open failed channel 4: open failed: administratively prohibited: open failed </pre> <br /> 다행히 저 내용으로 웹 검색을 하니 답을 찾을 수 있었습니다. ^^<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > SSH tunneling error: "channel 1: open failed: administratively prohibited: open failed" ; <a target='tab' href='https://unix.stackexchange.com/questions/14160/ssh-tunneling-error-channel-1-open-failed-administratively-prohibited-open'>https://unix.stackexchange.com/questions/14160/ssh-tunneling-error-channel-1-open-failed-administratively-prohibited-open</a> </pre> <br /> <div style='BACKGROUND-COLOR: #ccffcc; padding: 10px 10px 5px 10px; MARGIN: 0px 10px 10px 10px; FONT-FAMILY: Malgun Gothic, Consolas, Verdana; COLOR: #005555'> The above message refers to your SSH server rejecting your SSH client's request to open a side channel. This typically comes from -D, -L or -w, as separate channels in the SSH stream are required to ferry the forwarded data across.<br /> </div><br /> <br /> 이 문제를 해결하려면, "/etc/ssh/sshd_config" 파일에서 "AllowTCPForwarding" 설정을 yes로 바꾸면 된다고 합니다. 이후, <a target='tab' href='https://www.commandlinefu.com/commands/view/24295/restart-openssh-server-on-your-synology-nas-from-commandline'>서비스를 재시작</a>해야 하는데,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > // <a target='tab' href='https://www.commandlinefu.com/commands/view/24295/restart-openssh-server-on-your-synology-nas-from-commandline'>Restart openssh-server on your Synology NAS from commandline.</a> $ synoservicectl --restart sshd </pre> <br /> 서비스가 그냥 죽어버립니다. ^^; 할 수 없이 Synology DiskStation에 접속해 ssh 서버를 다시 살린 후, Visual Studio Code로 접속을 했더니 이번엔 콘솔 창에 다음의 메시지가 뜹니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > Connected to SSH Host - Please do not close this terminal </pre> <br /> 그래도 뭔가 진행은 되었고 터미널 창으로의 변경도 잘 되었습니다. 혹시나 싶어 다시 진단 옵션(remote.SSH.showLoginTerminal)을 제거했는데,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > // Place your settings in this file to overwrite the default settings { "editor.fontFamily": "Malgun Gothic", "window.zoomLevel": 0, "terminal.integrated.fontFamily": "Consolas", "terminal.integrated.shell.windows": "C:\\WINDOWS\\System32\\cmd.exe", } </pre> <br /> 이후에는 아무런 문제 없이 이전처럼 "Remote-SSH" 연결이 잘 동작했습니다.<br /> </p><br /> <br /><hr /><span style='color: Maroon'>[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]</span> </div>
첨부파일
스팸 방지용 인증 번호
2529
(왼쪽의 숫자를 입력해야 합니다.)