성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
MathJax 입력기
최근 덧글
[정성태] Working with Rust Libraries from C#...
[정성태] Detecting blocking calls using asyn...
[정성태] 아쉽게도, 커뮤니티는 아니고 개인 블로그입니다. ^^
[정성태] 질문이 잘 이해가 안 됩니다. 우선, 해당 소스코드에서 ILis...
[양승조
] var대신 dinamic으로 선언해서 해결은 했습니다. 맞는 해...
[양승조
] 또 막혔습니다. ㅠㅠ var list = props[i].Ge...
[양승조
] 아. 감사합니다. 어제는 안됐던것 같은데....정신을 차려야겠네...
[정성태] "props[i].GetValue(props[i])" 코드에서 ...
[정성태] 저렇게 조각 코드 말고, 실제로 재현이 되는 예제 프로젝트를 압...
[정성태] Modules 창(Ctrl+Shift+U)을 띄워서, 해당 Op...
글쓰기
제목
이름
암호
전자우편
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의 Connection Manager 기능(Remote SSH 관리)을 위한 명령행 도구 - 두 번째 이야기</h1> <p> 예전에 아래와 같은 명령 도구를 사용했었는데,<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의 Connection Manager 기능(Remote SSH 관리)을 위한 명령행 도구 ; <a target='tab' href='https://www.sysnet.pe.kr/2/0/11940'>https://www.sysnet.pe.kr/2/0/11940</a> </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;' > msbuild 에러 - error NETSDK1005: Assets file '...\project.assets.json' doesn't have a target for '...'. ; <a target='tab' href='https://www.sysnet.pe.kr/2/0/12968'>https://www.sysnet.pe.kr/2/0/12968</a> </pre> <br /> 이전에는 성공하던 빌드가 이제는 다음과 같은 오류를 냅니다.<br /> <br /> <div style='BACKGROUND-COLOR: #ccffcc; padding: 10px 10px 5px 10px; MARGIN: 0px 10px 10px 10px; FONT-FAMILY: Malgun Gothic, Consolas, Verdana; COLOR: #005555'> C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Application Type\Linux\1.0\Linux.targets(185,5): error : Could not connect to the remote system. Please verify your connection settings, and that your machine is on the network and reachable. [D:\TestPrj\TestPrj.vcxproj]<br /> </div><br /> <br /> 도대체 뭐가 잘못된 걸까요? ^^;<br /> <br /> <hr style='width: 50%' /><br /> <br /> 정상적으로 빌드가 되는, 비주얼 스튜디오가 설치된 곳의 store.xml과 비교했더니, xml에 필드 하나가 더 추가되었습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > <?xml version="1.0" encoding="utf-8"?> <store hash="51970831b3fef09afccf5...[생략]...927cf8848375f08fb7f27620e"> <entries> <entry id="409410665"> <hostname>192.168.100.50</hostname> <port>22</port> <dateAdded>목-13-6 2019 10:50:22</dateAdded> <span style='color: blue; font-weight: bold'><fingerprint /></span> <credentials> <lastsuccessful>월-1-1 0001 00:00:00</lastsuccessful> <lastfailed>월-1-1 0001 00:00:00</lastfailed> <lastupdated>월-1-1 0001 00:00:00</lastupdated> <username>testusr</username> <authenticationMethod>Password</authenticationMethod> <password>AQAAANCMn...[생략]...xWSNYXloQqXTA==</password> </credentials> <properties /> </entry> </entries> </store> </pre> <br /> 왠지 저것이 원인인 것 같습니다. 그래서 최신 버전의 liblinux를 참조했더니, FingerPrint 속성 관련해서 업데이트하는 비동기 메서드(UpdateFingerprintAsync)도 추가되었습니다. 그래서, 위와 같은 상황에서 다음과 같이 fingerprint를 업데이트하는 코드를 수행하면,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > int storeId = 409410665; string fingerprint = "SHA256:5HAse+O8MTh4npfJmsUPnDxv1pCI1XEjqOVOFmGk+iI"; store.UpdateFingerprintAsync(storeId, fingerprint, System.Threading.CancellationToken.None); </pre> <br /> 정상적으로 다시 msbuild가 동작했습니다.<br /> <br /> <hr style='width: 50%' /><br /> <br /> 참고로,fingerprint 값은 SSH 연결에서 구하는 값이 그대로 사용됩니다. 따라서 다음과 같이 구할 수 있고,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > C:\temp> <span style='color: blue; font-weight: bold'>ssh -o FingerprintHash=sha256 192.168.100.50</span> The authenticity of host '192.168.100.50 (192.168.100.50)' can't be established. ECDSA key fingerprint is <span style='color: blue; font-weight: bold'>SHA256:5HAse+O8MTh4npfJmsUPnDxv1pCI1XEjqOVOFmGk+iI</span>. Are you sure you want to continue connecting (yes/no/[fingerprint])? </pre> <br /> 저 값을 그대로 UpdateFingerprintAsync 메서드에 전달하면 됩니다.<br /> <br /> <hr style='width: 50%' /><br /> <br /> 첨부한 도구는 그래서 다음과 같은 순서로 사용할 수 있습니다.<br /> <br /> 우선, 비밀번호를 암호화하고,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > C:\temp> <span style='color: blue; font-weight: bold'>RemoteSshTool.exe encrypt your_password</span> AQAAANCMnd8BFdERjH...[생략]...+agXZgnpOhRA== </pre> <br /> 암호화된 문자열은 적절하게 보관을 하시고, 다음과 같은 명령어를 수행하면 store.xml에 연결 설정이 추가됩니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > C:\temp> <span style='color: blue; font-weight: bold'>RemoteSshTool.exe add 192.168.100.50 your_user_id AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAA//boMAK0a0mC+ddUSdQEWQAA....[생략]...pOhRA==</span> </pre> <br /> 이 상태에서는 store.xml에 fingerprint 값이 없는데, 이것을 다시 한번 다음의 명령어로 마무리를 합니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > c:\temp> <span style='color: blue; font-weight: bold'>RemoteSshTool.exe update-fingerprint -1204116193 SHA256:5HAse+O8MTh4npfJmsUPnDxv1pCI1XEjqOVOFmGk+iI</span> </pre> <br /> (<a target='tab' href='https://www.sysnet.pe.kr/bbs/DownloadAttachment.aspx?fid=1904&boardid=331301885'>첨부 파일은 지난 글에 포함한 RemoteSshTool의 개선된 버전</a>입니다.)<br /> </p><br /> <br /><hr /><span style='color: Maroon'>[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]</span> </div>
첨부파일
스팸 방지용 인증 번호
7302
(왼쪽의 숫자를 입력해야 합니다.)