내 네트워크에 ssh를 사용하여 정기적으로 액세스하는 여러 컴퓨터가 있습니다. 포트 포워딩을 통해 원격 액세스를 가능하게하고 싶습니다. 즉, 각 머신마다 별도의 sshd 포트가 필요합니다. 즉, 로컬 액세스를 위해 포트 22를 계속 사용하고 싶습니다.
나는 / etc / services에 configs를 추가해야한다는 것을 알고 있으며 나의 대답에 대한 열쇠는 sshd.plist에있다. 필자는 plist 파일이 내 위치와 다른 위치에 있다는 것을 나타내는 온라인으로 다양한 제안을 시도했습니다. 하나는 ssh.plist와 다른 sshd.plist를 제안했습니다. ssh.plist에 대한 나의 변경 사항은 아무 것도 달성하지 못했습니다. 또 다른 변경 제안 sshd.plist, 심지어 내 컴퓨터에 존재하지 않았지만, / System / Library / LaunchDaemons / com.apple.FileSyncAgent.sshd.plist 않습니다. 그 파일의 복사본을 만들고 이름을 바꿀 예정 이었지만, / etc / services의 호출에 연결할 수 없었습니다. 어쨌든 카피를 만들었지 만, 현재 값이 ssh.plist의 예제와 달리 파일 이름과 아무런 관련이 없으므로 키를 수정하는 방법을 알 수 없습니다.
그래서 저는 현재 ssh와 ssh-alt를 서비스에 두었습니다. 하나는 ssh이고 다른 하나는 ssh-alt 인 두 개의 ssh.plist 파일과 각각의 미러 이미지 인 두 개의 .sshd.plist 파일입니다. 다른. 기계를 재부팅 할 때 포트 22는 더 이상 작동하지 않지만 대체 포트는 작동합니다.
어떤 제안이라도 인정 될 것입니다.
답변
웰프, 나는 도움의 며칠 더 연구의 결과, 대답을 발견 이 맥 월드 포스트에 대한 답변 하나의 .plist 파일에 여러 포트를 포함시키는 방법이 있어야한다고 생각했지만 해결할 수 없었습니다. ssh.plist에 “Alternate Listener”키를 추가하면 다음과 같이 소켓 범위 내의 추가 포트를 얻을 수 있습니다.
<key>Sockets</key>
<dict>
<key>Listeners</key>
<dict>
(...)
</dict>
<key>Alternate Listeners</key>
<dict>
<key>SockServiceName</key>
<string>ssh-alt</string>
</dict>
</dict>
SockServiceName에 대한 ssh-alt 문자열을 확인하십시오. 원래 “Listeners”키는 그대로 유지되므로 Listener 및 Alternate Listener가 있습니다. ssh와 ssh-alt에 대해 / etc / services에 두 개의 항목이 있습니다 :
ssh 22/udp
ssh 22/tcp
ssh-alt 4790/udp
ssh-alt 4790/tcp
이는 포트 22 내부 액세스를 보존하고 외부 사용을 위해 포트 4790을 통해 액세스를 생성합니다 (방화벽 / 라우터에서 포트 22 및 포트 포워드 포트 4790을 사용 불가능으로 가정).