sshd
Mac 서버에서 사용 하는 포트를 변경하고 싶습니다 . 예를 들어, 포트 22에서 포트 32로 가정 해 봅시다.
편집 /etc/sshd_config
이 작동하지 않는 것 같습니다. 누구든지 그것을 바꾸는 방법을 알고 있습니까? 모든 OSX 버전과 호환되는 (또는 가능한 한 많은) 방법을 선호합니다.
sshd
Mac 서버에서 사용 하는 포트를 변경하고 싶습니다 . 예를 들어, 포트 22에서 포트 32로 가정 해 봅시다.
편집 /etc/sshd_config
이 작동하지 않는 것 같습니다. 누구든지 그것을 바꾸는 방법을 알고 있습니까? 모든 OSX 버전과 호환되는 (또는 가능한 한 많은) 방법을 선호합니다.
답변:
이전의 모든 답변은 (Google이 제안한대로) 작동하지만 더럽고 우아 합니다.
Mac OS X에서 실행 된 처리 된 서비스의 청취 포트를 변경하는 올바른 방법은 전용 키를 변경하는 것입니다.
ssh.plist
따라서 솔루션은 서비스 이름 대신 포트 번호를 사용하는 것만 큼 간단합니다.
내 편집에서 발췌 /System/Library/LaunchDaemons/ssh.plist
:
<key>Sockets</key>
<dict>
<key>Listeners</key>
<dict>
<key>SockServiceName</key>
<string>22022</string>
<key>SockFamily</key>
<string>IPv4</string>
<key>Bonjour</key>
<array>
<string>22022</string>
</array>
</dict>
</dict>
참고 : El Capitan, Sierra 및 이후 버전에서도이 파일을 편집하려면 SIP (System Integrity Protection)를 비활성화해야합니다. 참조 내가 시스템 무결성 보호 (SIP)을 해제하려면 어떻게해야 [...] .
위의 편집은 sshd가 IPV4를 통해서만 수신하도록합니다.
로 변경 한 후 ssh.plist
파일을 다음과 같이 다시로드해야합니다.
sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
sudo launchctl load /System/Library/LaunchDaemons/ssh.plist
사용합니다 launchctl stop ...
및 launchctl start ...
이 파일을 다시로드되지 않습니다.
이 링크를 입력 man launchd.plist
하거나 사용하여 자세한 정보가있는 매뉴얼 페이지를 찾을 수 있습니다 .
sshd가 추가 포트에서 청취하도록하려면 소켓 사전에 여러 항목을 추가 할 수 있습니다.
예:
<key>Sockets</key>
<dict>
<key>Listeners</key>
<dict>
<key>SockServiceName</key>
<string>ssh</string>
<key>Bonjour</key>
<array>
<string>ssh</string>
<string>sftp-ssh</string>
</array>
</dict>
<key>Listeners2</key>
<dict>
<key>SockServiceName</key>
<string>22022</string>
</dict>
</dict>
/System/Library/LaunchDaemons/ssh.plist
man launchd.plist
.
지금까지 읽은 경험에서 사용할 수있는 세 가지 주요 방법이 있습니다.
Mac OS X 시스템 파일을 어지럽히 지 않기 위해 socat을 사용하여 포트 22를 원하는 포트로 리디렉션하는 것입니다.
sudo mv ./socat-1.7.3.2.tar.gz /usr/local/bin/socat-1.7.3.2.tar.gz
)로 이동하십시오cd /usr/local/bin
)sudo tar -xvzf socat-1.7.3.2.tar.gz
cd ./socat-1.7.3.2
sudo ./configure && sudo make && sudo make install
).sudo socat TCP-LISTEN:2222,reuseaddr,fork TCP:localhost:22
) 을 보내 올바른 옵션을 사용하여 포트 22 (기본값 ssh)를 원하는 포트 (예 : 2222)로 리디렉션하십시오.완료되었으며 mac OS x 시스템 파일은 변경되지 않습니다. 또한이 방법은 Snow Leopard뿐만 아니라 모든 버전의 Mac OS X 및 socat이 실행될 수있는 모든 컴퓨터에서도 작동합니다.
라우터 / 방화벽을 사용하는 경우 마지막으로해야 할 일은 라우터 / 방화벽에 올바른 리디렉션 명령을 포함시키는 것입니다.
또한 ssh.plist 메소드, 서비스 메소드 또는 기타 메소드가 다른 것보다 낫거나 우아하거나 나쁘 든 토론에 빠지지 않습니다.
컴퓨터를 다시 시작할 때마다 socat 리디렉션을 다시 빌드하기 위해 시작할 때 실행되는 스크립트를 쉽게 준비 할 수도 있습니다. 이것을 다음에 배치하십시오 /Library/LaunchDaemons/com.serverfault.sshdredirect.plist
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.serverfault.sshdredirect</string>
<key>KeepAlive</key>
<dict>
<key>NetworkState</key>
<true/>
</dict>
<key>RunAtLoad</key>
<true/>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/socat</string>
<string>TCP-LISTEN:2222,reuseaddr,fork</string>
<string>TCP:localhost:22</string>
</array>
</dict>
</plist>
sudo launchctl load -w /Library/LaunchDaemons/com.serverfault.sshdredirect.plist
로드 할 때 사용하십시오 . 나중에 다시 부팅 할 때 자동으로로드됩니다.
또한 (i) 루프백 (127.0.0.1) 이외의 다른 인터페이스에서 포트 22에 대한 연결을 차단하도록 방화벽을 설정하고 (ii) sshd.conf 파일을 다음과 같이 변경하여 보안을 향상시킬 수 있습니다. ssh가 루프백에서만 청취하도록하십시오.
즐겨.
/etc/services
파일을 편집 하는 것은 나쁜 생각입니다. github 또는 bitbucket 계정에 대한 SSH 키 로그인과 같은 것에 영향을 미쳐 새 포트에 연결하여 실패합니다.
<key>KeepAlive</key><true/>
.
맨 페이지의 어느 곳에서 나이 문서를 제대로 볼 수는 없지만 추가 리스너를 추가하는 것 이상을 수행하지 않으려면 리스너 배열을 사용하고 추가 dict를 가질 수 있습니다. 포트를 직접 사용하는 경우 / etc / services를 편집 할 필요는 없습니다 (하지만 방화벽에서 포트를 열어야합니다!)
<key>Listeners</key>
<array>
<dict>
<key>Bonjour</key>
<array>
<string>ssh</string>
<string>sftp-ssh</string>
</array>
<key>SockServiceName</key>
<string>ssh</string>
</dict>
<dict>
<key>SockServiceName</key>
<string>22222</string>
</dict>
</array>
man launchd.plist
.
/usr/libexec/sshd-keygen-wrapper
(아래 plists에 표시) plist 자체에 지정된 것과 다른 SSH를 시작할 수 있습니다. 당신이 그것을 고양이 경우, 항상 시작됩니다/usr/sbin/sshd
.