macos ssh


原文链接: macos ssh

sshfs root@192.168.0.250:/data linux

Macos 挂载远程目录sshfs

OSX 连接远程 Linux 上的文件,使用的是 FUSE for OS XFUSE for OS X 是 Linux 下的 Fuse 协议的一个 OSX 实现。简单的说 FUSE for OS X 是一个开发库,实现的 Fuse 协议,为程序员开发自己的文件系统提供了 OSX 下的 API。OSX 下使用 FUSE for OS X 实现的文件系统有SSHFSFtpFS等。

可以直接下载

  1. 安装 OSXFUSE 的最新版本,按提示按照就 OK 了。

OSXFUSE 安装好以后,就可以下载

  1. 安装 SSHFS 进行安装 SSHFS 文件系统。SSHFS 提供了命令行的工具sshfs

比如我们要通过用户leon,把www.leonzhang.com这台机器上的/home/leon目录,挂接到 OSX 的本地目录/mnt/remote/me,使用的命令是:

sshfs leon@www.leonzhang.com:/home/leon /mnt/remote/me

使用完毕后,使用下述命令断开与远程系统的连接:
umount /mnt/remote/me
除了命令行,也有一个好用的图形化工具 Macfusion

MAC开机启用SSHD服务,比较简单。

偏好设置-共享-选中远程登录就可以了。

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

【系统环境】

  • 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
    
    1. 修改配置文件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>
    
  3. 重新载入配置

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

    __

`