Dari apa yang saya baca (dan alami) sejauh ini, ada tiga metode utama yang dapat digunakan:
- ubah pengaturan pada file ssh.plist;
- ubah pengaturan pada file / etc / services;
- ubah pengaturan pada file /etc/sshd.conf.
Cara lain untuk melakukannya, yang secara pribadi saya lebih suka untuk semua dan masing-masing metode ini, karena menghindari bermain-main dengan file sistem Mac OS X menggunakan socat untuk mengarahkan ulang port 22 ke port mana pun yang Anda inginkan.
- Unduh socat: http://www.dest-unreach.org/socat/download/socat-1.7.3.2.tar.gz
- Pindahkan file tar.gz ke direktori / usr / local / (
sudo mv ./socat-1.7.3.2.tar.gz /usr/local/bin/socat-1.7.3.2.tar.gz
)
- Buka direktori / usr / local / bin Anda (
cd /usr/local/bin
)
- Tidak terkompresi:
sudo tar -xvzf socat-1.7.3.2.tar.gz
- Pindah ke direktori file yang tidak dikompresi:
cd ./socat-1.7.3.2
- Jalankan konfigurasi yang biasa, buat, dan instal untuk menginstal socat (
sudo ./configure && sudo make && sudo make install
)
- Redirect port 22 (ssh default) ke port apa pun yang Anda inginkan (dalam contoh berikut, 2222) menggunakan opsi yang benar dengan mengirim panggilan socat (
sudo socat TCP-LISTEN:2222,reuseaddr,fork TCP:localhost:22
)
Anda selesai dan file sistem mac os x Anda tidak berubah. Selain itu, metode ini tidak hanya berfungsi pada Snow Leopard, tetapi pada semua versi Mac OS X dan juga pada mesin apa pun yang menjalankan socat.
Hal terakhir yang perlu Anda lakukan jika Anda menggunakan router / firewall adalah memasukkan perintah pengalihan yang benar dalam router / firewall Anda.
Juga, ia menghindari terjebak dalam perdebatan apakah metode ssh.plist, metode layanan atau metode apa pun yang lebih baik, lebih elegan atau lebih buruk daripada yang lain.
Anda juga dapat dengan mudah menyiapkan skrip yang dijalankan saat start up untuk membangun kembali pengalihan socat setiap kali Anda me-restart mesin Anda. Tempatkan ini di /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>
Gunakan sudo launchctl load -w /Library/LaunchDaemons/com.serverfault.sshdredirect.plist
untuk memuatnya. Itu akan secara otomatis memuat pada reboot masa depan.
Selain itu, Anda juga dapat meningkatkan keamanan dengan (i) mengatur firewall Anda untuk memblokir koneksi ke port 22 Anda dari antarmuka lain selain loopback (127.0.0.1) dan (ii) membuat perubahan serupa di file sshd.conf Anda untuk minta ssh mendengarkan di loopback saja.
Nikmati.
/usr/libexec/sshd-keygen-wrapper
(ditunjukkan dalam daftar di bawah) dapat memulai SSH yang berbeda dari yang ditentukan dalam daftar itu sendiri. Jika Anda menyukainya, itu selalu dimulai/usr/sbin/sshd
.