З того, що я читав (і переживав) до цих пір, можна використовувати три основні методи:
- змінити налаштування у файлі 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
- Запустіть звичайну конфігурацію, зробіть та встановіть для встановлення 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, метод послуг чи будь-який інший спосіб кращий, елегантніший або гірший за інші.
Ви також можете легко підготувати сценарій, який запускається при запуску, щоб відновити перенаправлення 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
для завантаження. Він автоматично завантажиться на майбутні перезавантаження.
Крім того, ви також можете покращити безпеку, встановивши брандмауер для блокування будь-яких з'єднань зі своїм портом 22 з будь-якого іншого інтерфейсу, ніж loopback (127.0.0.1) та (ii), внести аналогічні зміни у файл sshd.conf для мати ssh слухати лише на петлі.
Насолоджуйтесь.
/usr/libexec/sshd-keygen-wrapper
(показано в списках нижче) можна запустити інший SSH, ніж зазначено в самому плісті. Якщо ви котите це, воно завжди починається/usr/sbin/sshd
.