Я хочу изменить, какой порт sshd
используется на сервере Mac. Например, скажем, от порта 22 до порта 32.
Редактирование /etc/sshd_config
не похоже на работу. Кто-нибудь знает как это поменять? Я бы предпочел метод, который совместим со всеми версиями OSX (или, по крайней мере, с максимально возможным количеством).
ssh
mac-osx
mac-osx-server
Александр Артеменко
источник
источник
/usr/libexec/sshd-keygen-wrapper
(показано в списках ниже) может запустить другой SSH, чем указано в самом списке. Если вы это делаете, это всегда начинается/usr/sbin/sshd
.Ответы:
Каждый предыдущий ответ работает (как и Google предлагает), но они грязные и не элегантные .
Таким образом, решение так же просто, как использовать номер порта вместо имени службы.
Отрывок из моей редакции
/System/Library/LaunchDaemons/ssh.plist
:Примечание: чтобы иметь возможность редактировать этот файл в El Capitan, Sierra и, возможно, в будущих версиях, вам необходимо отключить SIP (защита целостности системы). См. Как отключить защиту целостности системы (SIP) [...] .
Приведенное выше редактирование также заставит sshd прослушивать только через IPV4.
После внесения любых изменений
ssh.plist
, файл должен быть перезагружен следующим образом:Обратите внимание, что использование
launchctl stop ...
иlaunchctl start ...
НЕ перезагрузит этот файл.Справочную страницу с дополнительной информацией можно найти, введя
man launchd.plist
или используя эту ссылку .источник
Если вы хотите, чтобы sshd прослушивал дополнительный порт, вы можете добавить несколько записей в словарь Sockets.
Пример:
источник
/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
)Вы сделали, и ваши системные файлы Mac OS X остались без изменений. Кроме того, этот метод работает не только на Snow Leopard, но и на всех версиях Mac OS X, а также на любой машине, на которой может работать socat.
Последнее, что вам нужно сделать, если вы используете маршрутизатор / брандмауэр, это включить правильные команды перенаправления в ваш маршрутизатор / брандмауэр.
Кроме того, это позволяет избежать застревания в дискуссии, является ли метод ssh.plist, метод services или любой другой метод лучше, элегантнее или хуже другого.
Вы также можете легко подготовить скрипт, который запускается при запуске, чтобы перестраивать перенаправление socat при каждой перезагрузке компьютера. Поместите это в
/Library/LaunchDaemons/com.serverfault.sshdredirect.plist
:Используйте,
sudo launchctl load -w /Library/LaunchDaemons/com.serverfault.sshdredirect.plist
чтобы загрузить его. Он будет автоматически загружаться при будущих перезагрузках.Кроме того, вы также можете улучшить безопасность, настроив (i) брандмауэр на блокировку любых подключений к вашему порту 22 с любого другого интерфейса, кроме loopback (127.0.0.1), и (ii) внесите аналогичное изменение в свой файл sshd.conf для иметь SSH слушать только по петле.
Наслаждаться.
источник
/etc/services
файл - плохая идея - это повлияет на такие вещи, как вход с помощью SSH-ключа в ваши учетные записи github или bitbucket, которые будут пытаться подключиться к новому порту и потерпеть неудачу.sudo
для установки. Вы не должны строить с повышенными привилегиями.<key>KeepAlive</key><true/>
.Я нигде не мог правильно описать это на справочной странице, но если вы хотите сделать что-то большее, чем просто добавить дополнительного слушателя, вы можете использовать массив слушателей и иметь дополнительный голос. Это не требует редактирования / etc / services, если вы используете порт напрямую (но не забудьте открыть порт на брандмауэре!)
источник
man launchd.plist
.