MAC开机启动ssh,并指定端口

MAC开机启用SSH,比较简单。 偏好设置-共享-选中远程登录就可以了。

但是想要指定端口去启用就比较恶心了。 网上搜了一圈后,可以按以下的方式去指定端口配置。

【系统环境】

  • OS: 10.11.4

【配置过程】

  1. 因为10.11开启了SIP,所以不能直接修改/System/下的文件。
  2. 把下面配置文件配置到用户级目录下。

    mkdir -p ~/Library/LaunchDaemons/
    sudo cp /System/Library/LaunchDaemons/ssh.plist ~/Library/LaunchDaemons/ssh.plist
    
  3. 修改配置文件vi ~/Library/LaunchDaemons/ssh.plist

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>Enabled</key>
        <true/>
        <key>Label</key>
        <string>com.openssh.sshd.xxxxx(随便起个名字,目的是不被共享设置里面的开关影响到)</string>
        <key>Program</key>
        <string>/usr/libexec/sshd-keygen-wrapper</string>
        <key>ProgramArguments</key>
        <array>
            <string>/usr/sbin/sshd</string>
            <string>-i</string>
        </array>
        <key>Sockets</key>
        <dict>
            <key>Listeners</key>
            <dict>
                <key>SockServiceName</key>
                <string>SSH端口</string>
                <key>Bonjour</key>
                <array>
                    <string>ssh</string>
                    <string>sftp-ssh</string>
                </array>
            </dict>
        </dict>
        <key>inetdCompatibility</key>
        <dict>
            <key>Wait</key>
            <false/>
            <key>Instances</key>
            <integer>42</integer>
        </dict>
        <key>StandardErrorPath</key>
        <string>/dev/null</string>
        <key>SHAuthorizationRight</key>
        <string>system.preferences</string>
        <key>POSIXSpawnType</key>
        <string>Interactive</string>
    </dict>
    </plist>
    
  4. 重新载入配置

    sudo launchctl unload ~/Library/LaunchDaemons/ssh.plist
    sudo launchctl load -w ~/Library/LaunchDaemons/ssh.plist
    
  5. 可以用telnet或是lsof来检查一下修改并启用的端口有没有开起来。或是直接ssh连一下测试即可。