라즈베리 파이를 쓸 때는 정상적으로 작동하던 Coda의 ‘Connect to MySQL Server via SSH’ 기능이 시놀로지 서버에서는 ‘reading initial communication packet’, system error: 0
오류를 내며 정상적으로 작동하지 않았다. DSM 클린 설치, bind-address 변경, PRIVILEGE 부여 등 여러 시도를 해 보았지만 해결되지 않았었는데, 오늘 드디어 해결 방법을 알아냈다. 원인은 시놀로지의 SSH 설정이 기본적으로 TCP 포워딩을 허용하고 있지 않아서였다. 해결 방법은 다음과 같다.
- 시놀로지 서버에 SSH로 접속한다.
- 좋아하는 에디터로
/etc/ssh/sshd\_config
파일을 연다. DSM에는 기본적으로 vi 에디터만 내장되어 있으나, nano 에디터를 선호한다면 서드파티 소스에서 nano 패키지를 설치해서 사용해도 된다. AllowTcpForwarding no
라고 적혀진 행을 찾은 다음, 이를AllowTcpForwarding yes
로 수정한다. 참고로 행을 아예 삭제하거나 주석으로 처리해도 기본값인yes
로 설정된다.- 변경사항을 저장하고 에디터를 빠져나온 다음, 콘솔에
sudo synoservicectl --restart sshd
명령을 입력하여 SSH를 재시작한다.
DSM에서 일부 시스템 파일들은 임의로 수정해도 재부팅 시 변경사항이 초기화되는 경우가 있는데 (대표적으로 nginx), 다행히도 sshd_config
파일은 그렇지 않은 듯 하다.