Mac,known_hosts位置不是默认的?

时间:2017-08-21 13:18:52

标签: macos ssh

我为一些客户开发了一个Java软件,并且我需要访问known_hosts文件,因为它使用了JSCH命令。我在运行Linux和几台Mac机的计算机上测试了它,它工作正常。但我遇到一个客户的问题:

我的软件无法访问known_hosts文件。我知道它的默认位置(并且通常是):/ Users / username / .ssh / known_hosts

但是

当我让他输入终端nano /users/username/.ssh/known_hosts时,它创建了一个新文件,而不是打开一个。 所以我的问题是:

known_hosts文件是否可能在其他地方?如果是这样,你如何找到它的位置???

注意:我没有远程访问Mac(就像使用TeamViewer或类似的东西),因为它没有连接到互联网。

2 个答案:

答案 0 :(得分:2)

由于可以通过~/.ssh/config中的条目覆盖特定主机的默认位置,因此您需要确定特定目标的文件

MacOS使用最新版本的openSSH,您应该可以使用-G选项来确定特定连接的配置:

$ ssh -G somehost | grep knownhostsfile
globalknownhostsfile /etc/ssh/ssh_known_hosts /etc/ssh/ssh_known_hosts2
userknownhostsfile ~/.ssh/known_hosts ~/.ssh/known_hosts2

创建known_hosts文件的正确方法不是使用nano或任何其他文本编辑器编辑文件,而是使用SSH 成功建立连接,并回答SSH客户端& #39;对主机密钥正确性的质疑。

如果你想让你的客户对你的安全性要求很敏感,他甚至可能都不知道他有,那么不要让他输入一个路径名,而是向他发送一个ssh命令行和一个预定的密钥。他要核实,这样他就可以自信地说'#34;是的,这是正确的主人。"让SSH完成它的工作。

答案 1 :(得分:0)

这是默认位置 - 该文件可能根本就不存在,因为它从未使用过(macOS经常这样做; /etc/fstab是另一个例子)。

但是,如果您创建此文件并向其添加任何主机(并设置正确的权限; 0700上的~/.ssh0600上的~/.ssh/known_hosts),则会识别它们