Из того, что я прочитал (и испытал) до сих пор, есть три основных метода, которые можно использовать:
- изменить настройку в файле ssh.plist;
- измените настройку в файле / etc / services;
- измените настройку в файле /etc/sshd.conf.
Другой способ сделать это, который я лично предпочитаю всем и каждому из этих методов, потому что он избегает возиться с системными файлами Mac OS X, - это использовать socat для перенаправления порта 22 на любой порт, который вы хотите.
- Скачать socat: http://www.dest-unreach.org/socat/download/socat-1.7.3.2.tar.gz
- Переместите файл tar.gz в каталог / usr / local / (
sudo mv ./socat-1.7.3.2.tar.gz /usr/local/bin/socat-1.7.3.2.tar.gz
)
- Перейдите в каталог / usr / local / bin (
cd /usr/local/bin
)
- Распаковка:
sudo tar -xvzf socat-1.7.3.2.tar.gz
- Переместитесь в несжатый каталог файлов:
cd ./socat-1.7.3.2
- Запустите обычную команду configure, make и make install для установки socat (
sudo ./configure && sudo make && sudo make install
)
- Перенаправьте порт 22 (по умолчанию ssh) на любой порт, который вы хотите (в следующем примере, 2222), используя правильную опцию, отправив вызов socat (
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
:
<?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) брандмауэр на блокировку любых подключений к вашему порту 22 с любого другого интерфейса, кроме loopback (127.0.0.1), и (ii) внесите аналогичное изменение в свой файл sshd.conf для иметь SSH слушать только по петле.
Наслаждаться.
/usr/libexec/sshd-keygen-wrapper
(показано в списках ниже) может запустить другой SSH, чем указано в самом списке. Если вы это делаете, это всегда начинается/usr/sbin/sshd
.