打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Mac OS X开启SSH服务,并修改自定义端口

开启ssh服务没什么好说的,只要从系统偏好设置->共享->勾选“远程登录” 即可

修改默认端口,这个鸟东西把我折腾的死去活来,因为/etc/下面也有sshd_config文件,长的和Linux下一模一样,我就想当然的修改这个文件,然后执行

sudo launchctl stop com.openssh.sshdsudo launchctl start com.openssh.sshd

屡次尝试都未果。
无奈之下只得Google之,【找到了这么个网页】,按照其中的方法在10.9和10.10上试验成功。

简单的把过程写一下:
1.备份ssh.plist:

sudo cp /System/Library/LaunchDaemons/ssh.plist /System/Library/LaunchDaemons/ssh.plist.bak

2.编辑/System/Library/LaunchDaemons/ssh.plist 文件,我们看到里面有Sockets这个key:

<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>

将其中的SockServiceName对应的string修改为想要的端口即可,不过我这里修改的是除了22端口,还额外的监听了2042这个端口,所以没修改Listeners,我又添加了一个Listeners,修改后的全部文件内容如下:

<?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>Disabled</key> <true/> <key>Label</key> <string>com.openssh.sshd</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> <key>Listeners2</key> <dict> <key>SockServiceName</key> <string>2042</string> </dict> </dict> <key>inetdCompatibility</key> <dict> <key>Wait</key> <false/> </dict> <key>StandardErrorPath</key> <string>/dev/null</string> <key>SHAuthorizationRight</key> <string>system.preferences</string> <key>POSIXSpawnType</key> <string>Interactive</string></dict></plist>

Listeners2就是我添加的内容

3.重新载入配置:网上说的那个launchctl stop/start方法在ssh服务上不适用,重启以后还是不会重新加载配置文件,应当进行如下操作:

sudo launchctl unload /System/Library/LaunchDaemons/ssh.plistsudo launchctl load /System/Library/LaunchDaemons/ssh.plist

4.telnet或者ssh自己新的端口尝试一下吧。


补充一个单行命令版本的修改ssh服务端口脚本(看上去逻辑是对的,但我没验证):

read -p 'Please enter new SSH Port number: ' sshport; sudo sed -i '-bak' -n '/SockServiceName/{p;n;s/>.*</>$sshport</;};p' /System/Library/LaunchDaemons/ssh.plist; echo 'SSH Port $sshport. Restart service for changes to take effect.'
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
修改,8.3和8.4的系统精简瘦身,IOS8.4 8.3精简进程和无用程序
一步一步实现无线安装iOS应用(内网OTA)
Max 安装 nginx php fcgi mysql [Kevin's Personal Wiki]
iOS开发企业版ipa分发(In
通过 itms:services://? 在线安装ipa ,跨过app-store
iPhone4 7.1.2精简优化教程,运行高速如新机 苹果论坛
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服