标签: known-hosts

我可以自动向 known_hosts 添加新主机吗?

这是我的情况:我正在设置一个测试工具,它将从中央客户端启动多个虚拟机实例,然后通过ssh. 虚拟机将具有以前未使用的主机名和 IP 地址,因此它们不会出现在~/.ssh/known_hosts中央客户端的文件中。

我遇到的问题是ssh针对新虚拟实例运行的第一个命令总是会出现一个交互式提示:

The authenticity of host '[hostname] ([IP address])' can't be established.
RSA key fingerprint is [key fingerprint].
Are you sure you want to continue connecting (yes/no)?
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以绕过这个问题并使客户端机器已经知道新主机,也许是通过使用已经嵌入到虚拟机映像中的公钥?如果可以的话,我真的很想避免使用 Expect 或其他任何东西来回答交互式提示。

linux ssh known-hosts

298
推荐指数
13
解决办法
44万
查看次数

scp 没有 known_hosts 检查

是否有机会跳过known_hosts检查而不清除known_hosts或禁用它ssh.conf?我既无权访问known_hosts也ssh.conf尚未访问。中没有找到合适的man。

ssh scp known-hosts

76
推荐指数
2
解决办法
11万
查看次数

披露您的 SSH known_hosts 文件是否存在安全风险?

我将在下周的一次会议上谈论我创建的一些软件工具。在此演示期间,我的笔记本电脑将显示在投影仪屏幕上。演示文稿将被录制下来并发布在 youtube 上。如果出于某种原因,我有机会~/.ssh/known_hosts在演示过程中打开和编辑我的文件,我应该在这样做时断开投影仪吗?披露我的 known_hosts 文件是否有任何安全风险?

ssh known-hosts ssh-keys

34
推荐指数
2
解决办法
2366
查看次数

SSH 进入一个经常更改 IP 的盒子

我有一些经常更改 IP 的云盒。

我使用主机名 ssh,但由于此错误消息,每次服务器启动时都必须编辑 known_hosts 文件:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is…
Run Code Online (Sandbox Code Playgroud)

除了任何安全风险以及与我想做的事情相关的风险之外,有没有办法忽略此错误或自动覆盖 known_hosts 文件,以便我不必总是自己编辑它?

ssh bash known-hosts fingerprint

31
推荐指数
3
解决办法
2万
查看次数

从命令行自动接受 rsa 密钥指纹

我已尝试yes | ssh root@10.x.x.x尝试接受 RSA 密钥指纹,但仍会提示我是否确定要连接。有没有办法让这个自动?

ssh rsa known-hosts ssh-keys

21
推荐指数
4
解决办法
6万
查看次数

为什么 SSH 认为我仍然有“known_hosts2”文件?

在尝试清理 iMac (macOS Monterey 12.1) 上的 SSH 配置和密钥文件时,我尝试使用详细标志 (-v) 进行 SSH。生成的输出包括以下几行:

...
debug1: load_hostkeys: fopen /Users/clint/.ssh/known_hosts2: No such file or directory
debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts: No such file or directory
debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts2: No such file or directory
...
Run Code Online (Sandbox Code Playgroud)

我知道我尝试创建known_hosts 文件的备份(并将其称为“known_hosts2”),但后来我删除了它。

有谁知道我如何找出为什么 SSH 仍然引用(并认为我拥有)一个名为“known_hosts2”的旧文件?

谢谢!

ssh mac-osx known-hosts

10
推荐指数
1
解决办法
2万
查看次数

如何使 ssh 将 known_hosts 匹配到 host/ip:port 而不仅仅是 host/ip?

我有两台机器在防火墙后面,ssh 端口转发到 2201 和 2202。

当我

ssh host -p 2201  
Run Code Online (Sandbox Code Playgroud)

它询问我是否信任这台机器,我说是,它被添加到 ~/.ssh/known_hosts

然后我

ssh host -p 2202  
Run Code Online (Sandbox Code Playgroud)

它不让我,因为这个 IP 中已经有一个条目~/.ssh/known_host:1(当我开始时文件是空的,所以第 1 行是之前 ssh 运行添加的那个)。

这发生在 CentOS 5.4 上。

在其他发行版上(我尝试过 Arch),ssh 似乎也将 known_hosts 与端口匹配,因此我可以在同一主机/ip 上为多个端口设置多个指纹而不会出现任何问题。

我怎样才能为 CentOS 获得同样的行为?

我找不到任何东西man ssh_config(或者至少在没有禁用指纹检查的情况下)。

我找到了一个临时解决方案。如果该known_hosts文件具有多个相同 IP 的条目,它会在得出错误结论之前检查所有条目。但我真的很讨厌这是解决方案。

ssh known-hosts

9
推荐指数
2
解决办法
2万
查看次数

在不同环境中的许多系统上使用相同的 IP

我在一个有多个位置的环境中工作,并且在每个位置我们都有相同的 IP 寻址方案,也就是说,我们有许多机器(每个位置一台)共享相同的 IP 地址(尽管主机名不同)。当然,这些位置之间没有通信,也没有 DNS。我通过打开 VPN 隧道依次连接到每个位置。我的工作站是 Linux。

我正在尝试开发一个系统,让我在这种环境中尽可能安全地工作。我想直接使用主机名而不是 IP 地址,因为我们有一个易于记忆的命名约定。到目前为止我遇到的问题是:1) 错误地登录到不同的机器,因为隧道打开到错误的位置,以及 2) ssh 有一个不同的主机,具有相同的 IP,但在 known_hosts 中有不同的主机名,以及拒绝连接。

到目前为止,我正在考虑为每个位置(例如 /etc/hosts.location1)创建一个不同的 /etc/hosts 和 ~/.ssh/known_hosts 文件,并使用位置切换脚本通过复制这些文件来自动切换这些文件通过默认文件(例如cp /etc/hosts.location1 /etc/hosts)为我的目标位置定制的版本。理想情况下,这个脚本最终将与我用来打开不同位置的 VPN 的软件集成。

我的问题是:有没有更好的方法来做到这一点?我错过了 ssh 或 linux 名称解析中的任何功能吗?

非常感谢。

编辑:这是一个生产环境,我正在寻找解决此问题的工作站解决方案。

linux ssh hosts hostname known-hosts

6
推荐指数
1
解决办法
401
查看次数

OpenSSH 的公钥认证 Windows 端口

我一直在尝试在运行 Windows Server 2012 R2 的 VM 上使用OpenSSH的PowerShell 端口进行公钥身份验证。

我忠实地遵循了安装说明,并确保我的文件权限对于.ssh\authorized_keys. (无法在 Win32-OpenSSH wiki 中发布特定说明的链接,因为我太少,无法发布两个以上的链接,请参阅下面的评论)。

我可以使用用户名/密码按预期从 linux 主机登录到 windows 主机。然而,密钥认证不走运。

本地(linux 主机)配置

我的本地 .ssh/config文件包含:

Host remotehostname
    HostName remotehostname
    User remoteuser
    Port 22
    IdentityFile /home/myusername/.ssh/id_dsa
Run Code Online (Sandbox Code Playgroud)

本地.ssh目录中的权限显示正确:

[me@localhost.ssh]$ ls -ltrh
total 56K
-rw------- 1 cengadmin cengadmin 1.6K Sep 11 10:01 known_hosts
-r-------- 1 cengadmin cengadmin  672 Sep 11 10:06 id_dsa
-r-------- 1 cengadmin cengadmin  580 Sep 11 10:13 config
Run Code Online (Sandbox Code Playgroud)

远程(windows 主机)配置 …

powershell ssh known-hosts windows-server-2012-r2

5
推荐指数
1
解决办法
9055
查看次数

在没有提示的情况下将远程主机添加到 known_hosts 文件

我编写了一些脚本,并希望在known_hosts没有任何交互的情况下将远程主机添加到我的文件中。我可以运行类似的命令ssh -o "StrictHostKeyChecking no" root@10.x.x.x,将远程主机密钥添加到我的已知主机,但后面会出现 ssh 密码提示。在没有密码提示的情况下有什么方法可以做到这一点?

linux ssh centos known-hosts ssh-keys

4
推荐指数
1
解决办法
2万
查看次数