<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>SSH on 얼쑤 · Team Edo</title><link>https://team-edo.github.io/tags/ssh/</link><description>Recent content in SSH on 얼쑤 · Team Edo</description><generator>Hugo</generator><language>ko-kr</language><lastBuildDate>Mon, 09 Nov 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://team-edo.github.io/tags/ssh/index.xml" rel="self" type="application/rss+xml"/><item><title>컨테이너에서만 타임아웃 난 MySQL SSH 터널 추적기</title><link>https://team-edo.github.io/posts/2026/11/ssh-tunnel-container-mysql-timeout/</link><pubDate>Mon, 09 Nov 2026 00:00:00 +0000</pubDate><guid>https://team-edo.github.io/posts/2026/11/ssh-tunnel-container-mysql-timeout/</guid><description>&lt;p>MySQL 복제를 준비하면서 원본 DB에 닿는 경로를 SSH 터널로 제한했다. 원본 서버의 전달 포트는 루프백에만 열었다. 대기 서버에서는 SSH 클라이언트가 전용 브리지의 호스트 주소에 포트를 열어 복제 컨테이너의 연결을 받도록 했다.&lt;/p>
&lt;p>대기 서버 호스트에서 터널 포트에 접속하자 MySQL이 첫 응답을 보냈다. 같은 포트에 &lt;strong>복제 컨테이너에서&lt;/strong> 접속하자 &lt;code>ERROR 2003&lt;/code>과 함께 연결 시간이 초과됐다.&lt;/p>
&lt;h2 id="응답이-끊긴-구간-찾기">응답이 끊긴 구간 찾기&lt;/h2>
&lt;p>연결 경로를 세 위치에서 비교했다.&lt;/p></description></item><item><title>팀 채팅에서 서버 상태만 읽게 한 방법</title><link>https://team-edo.github.io/posts/2026/11/mattermost-readonly-server-checks/</link><pubDate>Mon, 09 Nov 2026 00:00:00 +0900</pubDate><guid>https://team-edo.github.io/posts/2026/11/mattermost-readonly-server-checks/</guid><description>&lt;p>새 버전을 올린 뒤 서비스가 요청을 받을 준비가 됐는지 확인하고 싶을 때가 있습니다. 얼쑤에서는 팀 채팅에서 정해진 명령을 실행하면 서버가 답한 시각과 점검 결과를 표로 받을 수 있게 했습니다. 채팅 명령이 서버까지 이어지는 만큼, 어떤 입력을 받을지와 서버에서 무엇을 실행할지를 각각 정했습니다.&lt;/p>
&lt;h2 id="채팅-명령을-세-가지-질문으로-나누기">채팅 명령을 세 가지 질문으로 나누기&lt;/h2>
&lt;p>두 서버에 각각 서버 자원, 컨테이너, 준비 상태를 보는 세 가지 명령을 두었습니다. 디스크가 얼마나 남았는지와 특정 앱이 요청을 받을 수 있는지는 다른 곳에서 읽어야 합니다.&lt;/p></description></item><item><title>원격 명령은 어디서 막혔을까</title><link>https://team-edo.github.io/posts/2026/10/trace-shell-and-ssh-command-failures/</link><pubDate>Thu, 29 Oct 2026 00:00:00 +0900</pubDate><guid>https://team-edo.github.io/posts/2026/10/trace-shell-and-ssh-command-failures/</guid><description>&lt;p>운영 기록을 읽으려던 명령이 실패하면 먼저 원격 서버 상태를 의심하기 쉽습니다. 세 번의 실패를 다시 보니 Git에 인수를 넘기기 전, SSH에 인수를 넘기는 순간, SSH가 원격 명령을 시작하기 전이라는 서로 다른 위치에서 막혔습니다.&lt;/p>
&lt;h2 id="zsh가-만든-인수를-먼저-본다">zsh가 만든 인수 확인&lt;/h2>
&lt;p>첫 사례에서는 변수에 든 Git ref 뒤에 콜론과 경로를 바로 붙였습니다. zsh에서 뒤 문자열이 &lt;code>:a&lt;/code>로 시작하면 변수 확장의 경로 수정자로 읽힐 수 있습니다. &lt;code>git show &amp;quot;${ref}:archive/report.txt&amp;quot;&lt;/code>처럼 중괄호로 변수 이름을 닫으면 콜론은 Git이 받는 문자열에 그대로 남습니다. &lt;a href="https://zsh.sourceforge.io/Doc/Release/Expansion.html">zsh 확장 문서&lt;/a>&lt;/p></description></item></channel></rss>