SSH로 Synology MariaDB 서버 접속 시 오류가 날 때

라즈베리 파이를 쓸 때는 정상적으로 작동하던 Coda의 ‘Connect to MySQL Server via SSH’ 기능이 시놀로지 서버에서는 ‘reading initial communication packet’, system error: 0 오류를 내며 정상적으로 작동하지 않았다. DSM 클린 설치, bind-address 변경, PRIVILEGE 부여 등 여러 시도를 해 보았지만 해결되지 않았었는데, 오늘 드디어 해결 방법을 알아냈다. 원인은 시놀로지의 SSH 설정이 기본적으로 TCP 포워딩을 허용하고 있지 않아서였다. 해결 방법은 다음과 같다.

  1. 시놀로지 서버에 SSH로 접속한다.
  2. 좋아하는 에디터로 /etc/ssh/sshd\_config 파일을 연다. DSM에는 기본적으로 vi 에디터만 내장되어 있으나, nano 에디터를 선호한다면 서드파티 소스에서 nano 패키지를 설치해서 사용해도 된다.
  3. AllowTcpForwarding no라고 적혀진 행을 찾은 다음, 이를 AllowTcpForwarding yes로 수정한다. 참고로 행을 아예 삭제하거나 주석으로 처리해도 기본값인 yes로 설정된다.
  4. 변경사항을 저장하고 에디터를 빠져나온 다음, 콘솔에 sudo synoservicectl --restart sshd 명령을 입력하여 SSH를 재시작한다.

DSM에서 일부 시스템 파일들은 임의로 수정해도 재부팅 시 변경사항이 초기화되는 경우가 있는데 (대표적으로 nginx), 다행히도 sshd_config 파일은 그렇지 않은 듯 하다.

참고: http://serverfault.com/a/697695