텔넷 서버를 통해 psql 연결을 postgres 데이터베이스 서버로 터널링하려고 하는데 매개변수가 구문 분석되는 방식에 약간의 차이가 있어 한동안 디버깅에 문제가 발생합니다.
bash 5.0.11 및 OpenSSH_8.1p1이 설치된 Linux 시스템에서는 다른 콘솔에서 다음 명령을 사용하여 이 작업을 성공적으로 수행할 수 있습니다.
ssh -N -T -L 50000:pgsql96.database.server:5432 [email protected]
psql -h localhost -p 50000 -d databasename -U user
bash 3.2.57 및 OpenSSH_7.9p1이 설치된 Mac 컴퓨터에서 동일한 터널 명령을 실행할 때
ssh -N -T -L 50000:pgsql96.database.server:5432 [email protected]
다음 오류가 발생합니다.
잘못된 로컬 전달 사양 '50000:pgsql96.database.server:5432[이메일 보호됨]'
결국 위 문자열이 앞으로 텔넷 서버를 참조하고 있기 때문에 명령줄 인수 구문 분석에 차이가 있음을 깨닫고 다음을 추가하여 명령을 수정했습니다 --
.
ssh -N -T -L 50000:pgsql96.database.server:5432 -- [email protected]
이러한 매개변수가 두 버전 간에 다르게 구문 분석되는 이유는 무엇이며 이러한 동작 차이는 언제 예상해야 합니까?