Table of contents

  1. Mac 網路連線設定
  2. Mac下的 sshd 服务
    1. 重启ssh服务
    2. 修改 sshd 配置
    3. 在客户端生成 ssh rsa key
    4. macOS 開關sshd
    5. know_hosts 作用
    6. ssh keygen 免輸入密碼
    7. ssh white list
    8. MAC 封鎖存取特定 IP
  3. 在 macOS 安裝 Apache HTTP Server
  4. mapserver
  5. How can I disable Server.app’s Webserver?
  6. Monterey Pbms
    1. httpd.conf設定
    2. 啟動方式

Mac 網路連線設定

  • 乙太網路
    • 點選上方工作列的圖示,選擇「系統偏好設定」。 如圖點選「系統偏好設定」中的「網路」。
    • 乙太網路(固定IP)設定:
    • 設定固定IP,需要改成「手動」。
    • 然後在此畫面,手動輸入相關網路設定。 範例 IP 位址:140.119.XX.XX. 子網路遮罩:255.255.255.0.
  • 使用PPPoE 將Mac 連接Internet
    • 在您的Mac 上,選擇「蘋果」選單 >「系統偏好設定⋯」,然後按一下「網路」。 …
    • 按一下左側列表底部的「加入」按鈕 ,按一下「介面」彈出式選單,然後選擇PPPoE。
    • (anonymous), 在 Mac OS X 設定網路, [nccu] (http://flow2.nccu.edu.tw/Reg/apple_setnet2.pdf), ()
  • 使用PPPoE 將Mac 連接Internet - Apple 支援
  • wifi
    • (discussion), Set Mac to use Wifi for Internet, Ethernet for local file transfer, apple.stackexchange, asked Aug 19 ‘14 at 14:38

Mac下的 sshd 服务

  • 在 Mac 系统上打开 ssh 服务权限
  • 修改 sshd 配置
  • 在登录制生成 rsa key
  • 将 rsa key 存到 server 端的 ~/.ssh/authorized_keys文件中

重启ssh服务

  • 在Mac上打开sshd访问权限
  • 勾选 Apple menu > System Preferences > Sharing > Remote Login -(启动台 ->系统偏好设置->共享->远程登录)
  • 选择任何人、或白名單。

修改 sshd 配置

  • 在/etc/ssh/sshd_config文件中只需打开下面几项:
    • AuthorizedKeysFile .ssh/authorized_keys 指定被授权的用户的rsa 加密key存放的位置。
    • UsePAM 使用 PAM 进行权限管理。
    • AcceptEnv LANG LC_* 指明本地位置信息。
    • Subsystem sftp /usr/libexec/sftp-server 默认协议。

在客户端生成 ssh rsa key

  • 执行 ssh-genkey -t rsa 命令,然后要求输入的地方一直回车。
  • 打开~/.ssh/id-rsa.pub文件,拷贝里面的内容。

macOS 開關sshd

  • 启动 sshd 服务
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
  • 停止 sshd 服务
    sudo launchctl unload -w /System/Library/LaunchDaemons/ssh.plist
    
  • 查看sshd服务是否启动
sudo launchctl list | grep ssh

know_hosts 作用

  • 在 Mac 上的~/.ssh/ 目录下有一个 know_hosts文件,里边存放了所以你访问过的 sshd 服务,它是一个缓冲文件。每当你通过 ssh 远程访问时,它都会先到这个文件中去查找是否有以前的记录。
  • 在一些情况下,如果你访问某台sshd服务出现了错误,那么当你下次访问时还是报错,很可能就是这个文件导致的。所以出现类似问题时,你要记得清一下这个文件中的内容。
  • 作者:音视频直播技术专家

ssh keygen 免輸入密碼

  • client -> server
ssh-keygen -t rsa 或 ssh-keygen -d (dsa) => 產生出 id_rsa, id_rsa.pub
scp id_rsa.pub server_hostname:~/.ssh/ id_rsa.pub_client
ssh server_hostname
cat .ssh/id_rsa.pub_client >> .ssh/authorized_keys 即可

ssh white list

  • https://blog.wu-boy.com/2016/12/create-account-and-ssh-permission-on-mac/

    MAC 封鎖存取特定 IP

  • https://blog.yowko.com/mac-block-outgoing-ip/

在 macOS 安裝 Apache HTTP Server

  • http://mt116.blogspot.com/2019/12/macos-apache-http-server.html
  • macOSX 開啟內建 Apache 網站伺服器與PHP環境設定
sudo apachectl start
sudo apachectl restart
sudo apachectl stop
  • https://www.minwt.com/mac/21769.html

mapserver

brew install mapserver
  • https://formulae.brew.sh/formula/mapserver
    • (fail); try make, need proj4, C# compiler(https://www.mono-project.com/docs/about-mono/supported-platforms/macos/)
  • https://www.infoworld.com/article/2939526/automating-osx-server-with-the-serverctl-command.html

How can I disable Server.app’s Webserver?

edit: /Library/Server/Web/Config/Proxy/apache_serviceproxy.conf
Comment or change these to alternate ports
listen 80
listen 443
sudo killall httpd

Monterey Pbms

<IfModule alias_module>
...
  ScriptAliasMatch ^/cgi-bin/((?!(?i:webobjects)).*$) "/Library/WebServer/CGI-Executables/$1"`
</IfModule>
  • Directory
#
# "/usr/local/var/www/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
<Directory "/Library/WebServer/CGI-Executables">
    AllowOverride All 
    Options +ExecCGI
    Require all granted
</Directory>
  • 新增CGI程式附加檔名
<IfModule mime_module>
...
    #
    # AddHandler allows you to map certain file extensions to "handlers":
    # actions unrelated to filetype. These can be either built into the server
    # or added with the Action directive (see below)
    #
    # To use CGI scripts outside of ScriptAliased directories:
    # (You will also need to add "ExecCGI" to the "Options" directive.)
    #
    AddHandler cgi-script .cgi .pl .py
...
</IfModule>
  • Listen 125.229.149.182:80

    啟動方式

  • 前述建議用brew services restart httpd無法連上,還是需要sudo apachectl start
  • sudo chmod +a "_www allow execute" /Library/WebServer/CGI-Executables also /Library/WebServer/Documents