OS X 10.7.4上现有版本的openssh是SSH-2.0-OpenSSH_5.6,不幸的是,它不符合PCI标准。所以,我需要升级它,我一直试图用Homebrew这样做。
到目前为止,我所做的是:
brew tap homebrew/dupes
brew install openssh
没问题,一切顺利,现在当我尝试which ssh
时,我得到了:
/usr/local/bin/ssh
这似乎很好,which sshd
也给出了:
/usr/local/sbin/sshd
和ssh -v
正式报告:
OpenSSH_5.9p1, OpenSSL 0.9.8r 8 Feb 2011
到目前为止一切顺利。但是这里我不在我的元素之内。端口22仍在使用操作系统安装版本,也就是说telnet hostname 22
报告:
SSH-2.0-OpenSSH_5.6
我尝试过使用/System/Library/LaunchDaemons/ssh.plist,但没有运气。
所以,我的问题是(可能与重要性相反):
我对没有通过PCI合规性扫描感到沮丧,并且需要弄明白这一点,坦率地说我正在考虑将我服务器上的所有电子商务网站更改为stripe.com,但我想得到这弄明白了。另外,有人知道openssh是否会在Mountain Lion升级?
编辑:以下是我在/System/Library/LaunchDaemons/ssh.plist中尝试的内容:
我只编辑了一行,改变了:
<string>/usr/sbin/sshd</string>
要
<string>/usr/local/sbin/sshd</string>
然后我按照@ the-paul的建议尝试了sudo kill -HUP 1
,并重新启动了Mac。
从远程登录仍显示SSH-2.0-OpenSSH_5.6
我的整个ssh.plist文件现在看起来像这样:http://pastie.org/private/qnhofuxomawjdypp9wgaq
答案 0 :(得分:15)
这样的守护进程在OS X上由launchd
控制,而/System/Library/LaunchDaemons/
又由/Library/LaunchDaemons
和/System/Library/LaunchDaemons/ssh.plist
等目录中的文件配置。至少在Lion和Snow Leopard上,默认的ssh守护进程由Program
定义。
您可以使用文本编辑器以root身份打开它,并将“/usr/libexec/sshd-keygen-wrapper
”键的值从/usr/local/sbin/sshd
更改为您想要的路径;在你的情况下,这可能是ProgramArguments
。然后你还需要更改第一个/usr/sbin/sshd
字符串,即launchproxy
,因为这是sudo launchctl unload -w /System/Library/LaunchDaemons/ssh.plist
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
的参数。然后,重新加载,
ssh.plist
我不知道这应该如何导致与普通或性能良好的OS X软件发生冲突。
是的,这对我来说似乎是一件非常合理的事情。安全很重要。
这不是一个非常负责任的问题。但几乎可以肯定,是的,和其他人一样:^)
不。唯一真正令人担心的是,您的sshd与安全性保持同步或更好。如果您意识到这个问题所带来的问题,那么我认为这对您来说不会有问题。
编辑:更正了我对编辑{{1}}的建议(此次测试)。
答案 1 :(得分:1)
这就是我所做的。基于以上讨论。成功在10.11.6(El Capitan)上进行了测试
编辑/System/Library/LaunchDaemons/ssh.plist
,以使相应的键反映出来……
<key>ProgramArguments</key>
<array>
<string>/usr/local/sbin/sshd</string>
<string>-i</string>
</array>
编辑外壳程序脚本/usr/libexec/sshd-keygen-wrapper
,以便最后一个命令反映以下内容:
exec /usr/local/sbin/sshd $@
克隆/etc/ssh/
目录内容:
$ sudo cp /etc/ssh/ssh* /usr/local/etc/ssh/
确保可靠的文件所有权和权限:
$ sudo chmod 755 /usr/local/etc/ssh/
$ sudo chmod 600 /usr/local/etc/ssh/*_key
$ sudo chmod 644 /usr/local/etc/ssh/ssh{{,d}_config,*.pub}
$ sudo chown -R root:wheel /usr/local/etc/ssh/
重新加载SSH守护程序
:$ sudo launchctl unload -w /System/Library/LaunchDaemons/ssh.plist
$ sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
注意:例如,最后一项等效于systemsetup -setremotelogin on
或在“系统偏好设置”面板中激活共享服务。
确保从客户端升级OpenSSH:
$ ssh-audit <Server IP>
# general
(gen) banner: SSH-2.0-OpenSSH_7.8
(gen) software: OpenSSH 7.8
(gen) compatibility: OpenSSH 6.5+, Dropbear SSH 2013.62+
(gen) compression: enabled (zlib@openssh.com)
安装OpenSSH:
$ brew install openssh
克隆/etc/ssh/
目录内容。
确保可靠的文件所有权和权限。