macos ssh
原文链接: macos ssh
sshfs root@192.168.0.250:/data linux
Macos 挂载远程目录sshfs
OSX 连接远程 Linux 上的文件,使用的是 FUSE for OS X。FUSE for OS X 是 Linux 下的 Fuse 协议的一个 OSX 实现。简单的说 FUSE for OS X 是一个开发库,实现的 Fuse 协议,为程序员开发自己的文件系统提供了 OSX 下的 API。OSX 下使用 FUSE for OS X 实现的文件系统有SSHFS
、FtpFS
等。
可以直接下载
- 安装 OSXFUSE 的最新版本,按提示按照就 OK 了。
OSXFUSE 安装好以后,就可以下载
- 安装 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
【配置过程】
- 因为10.11开启了SIP,所以不能直接修改/System/下的文件。
把下面配置文件配置到用户级目录下。
mkdir -p ~/Library/LaunchDaemons/ sudo cp /System/Library/LaunchDaemons/ssh.plist ~/Library/LaunchDaemons/ssh.plist
- 修改配置文件
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>
- 修改配置文件
重新载入配置
sudo launchctl unload ~/Library/LaunchDaemons/ssh.plist sudo launchctl load -w ~/Library/LaunchDaemons/ssh.plist
- 可以用telnet或是lsof来检查一下修改并启用的端口有没有开起来。或是直接ssh连一下测试即可。
- 可以用telnet或是lsof来检查一下修改并启用的端口有没有开起来。或是直接ssh连一下测试即可。