Từ những gì tôi đọc (và có kinh nghiệm) cho đến nay, có ba phương pháp chính có thể được sử dụng:
- thay đổi cài đặt trong tệp ssh.plist;
- thay đổi cài đặt trong tệp / etc / services;
- thay đổi cài đặt trong tệp /etc/sshd.conf.
Một cách khác để làm điều đó, mà cá nhân tôi từ trước đến nay thích hơn tất cả và mỗi phương pháp này, vì nó tránh gây rối với các tệp hệ thống Mac OS X là sử dụng socat để chuyển hướng cổng 22 sang bất kỳ cổng nào bạn muốn.
- Tải xuống socat: http://www.dest-unreach.org/socat/doad/socat-1.7.3.2.tar.gz
- Di chuyển tệp tar.gz vào thư mục / usr / local / của bạn (
sudo mv ./socat-1.7.3.2.tar.gz /usr/local/bin/socat-1.7.3.2.tar.gz
)
- Chuyển đến thư mục / usr / local / bin (
cd /usr/local/bin
)
- Giải nén:
sudo tar -xvzf socat-1.7.3.2.tar.gz
- Di chuyển đến thư mục tập tin không nén:
cd ./socat-1.7.3.2
- Chạy cấu hình thông thường, tạo và thực hiện cài đặt để cài đặt socat (
sudo ./configure && sudo make && sudo make install
)
- Chuyển hướng cổng 22 (ssh mặc định) sang bất kỳ cổng nào bạn muốn (trong ví dụ sau, 2222) bằng cách sử dụng tùy chọn chính xác bằng cách gửi một cuộc gọi socat (
sudo socat TCP-LISTEN:2222,reuseaddr,fork TCP:localhost:22
)
Bạn đã hoàn tất và các tệp hệ thống mac os x của bạn được giữ nguyên. Ngoài ra, phương pháp này không chỉ hoạt động trên Snow Leopard, mà trên tất cả các phiên bản Mac OS X và trên bất kỳ máy nào mà socat có thể chạy.
Điều cuối cùng bạn cần làm nếu bạn sử dụng bộ định tuyến / tường lửa là bao gồm các lệnh chuyển hướng chính xác trong bộ định tuyến / tường lửa của bạn.
Ngoài ra, nó cũng tránh bị mắc kẹt trong cuộc tranh luận liệu phương pháp ssh.plist, phương thức dịch vụ hay phương thức nào tốt hơn, thanh lịch hơn hay tệ hơn phương pháp khác.
Bạn cũng có thể dễ dàng chuẩn bị một tập lệnh chạy khi khởi động để xây dựng lại chuyển hướng xã hội mỗi khi bạn khởi động lại máy. Đặt cái này vào /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>
Sử dụng sudo launchctl load -w /Library/LaunchDaemons/com.serverfault.sshdredirect.plist
để tải nó. Nó sẽ tự động tải vào các lần khởi động lại trong tương lai.
Ngoài ra, bạn cũng có thể cải thiện bảo mật bằng cách (i) đặt tường lửa của mình chặn mọi kết nối tới cổng 22 từ bất kỳ giao diện nào khác ngoài loopback (127.0.0.1) và (ii) thực hiện thay đổi tương tự trong tệp sshd.conf của bạn thành có ssh nghe trên loopback thôi.
Thưởng thức.
/usr/libexec/sshd-keygen-wrapper
(được hiển thị trong các bảng dưới đây) có thể bắt đầu một SSH khác với chỉ định trong chính bảng. Nếu bạn mèo nó, nó luôn luôn bắt đầu/usr/sbin/sshd
.