如何判断 Putty 是否已经知道并缓存了特定 ssh 服务器的凭据?
问这个问题的另一种方法是 Windows/Putty 相当于 unix/ssh known_hosts 文件是什么?
我的笔记本电脑有一个填充良好的~/.ssh/known_hosts文件。我想在从我的桌面连接到远程主机时利用它,因为追踪指纹可能是一件真正的苦差事。但是,我似乎无法找到询问ssh-keygen或ssh-keyscan告诉我已知主机的本地已知指纹的方法。有任何想法吗?
通过 SSH 连接时,我的终端默认使用 id_rsa。我不想将该密钥用于该特定服务器。所以我在连接时被迫指定正确的密钥路径:
这适用于连接: ssh -i /Users/myuser/.ssh/mykey serveruser@server.com
但我更喜欢使用以下连接: ssh user@server.com
我的问题:当serveruser连接到server.com时,有没有办法在 known_hosts 或其他配置中指示 SSH 应该使用位于/Users/myuser/.ssh/mykey的密钥?
谢谢!
由于客户端 (CI) 拒绝远程的主机密钥(尽管它存在于 中),我最近在部署CI服务器时遇到了问题known_hosts。直到今天,当我意识到 SSH 以部署插件似乎不兼容的格式保存主机密钥时,我才被难住了。作为参考,兼容格式(仍然存在于我的个人机器上)类似于:
11.22.33.44 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCkVf7rhfC7nLxbeIQRj2bWitUC+XLSAeQ0ap8r8rKObDXYfPdB97NZth9JCEt3OrBXuBeg4PaAEuPu2QF7WXoT60hgAP6etr0W4LqcH59yd/X0ogFP7Y7hIf6dz1txDKaW92wgUi5XShwH6vukf0gLvW6/ak1LTBuoy72gaoUvxZge4KZivz9XqvSQHNOG9KYNfh8U6cRM8YTQo5in7YD5d6REV/FUmXpvBzCa9kbVRSlQFGYEc1HidTnPnJDteas3A9y3na385O7WN64aAkg7TO8IFXKdDHSwji9ZyrCVPA5GEuyLKhDFanV8iJ7CNflHMP8TwG5FOT2bSkV0lPyl
Run Code Online (Sandbox Code Playgroud)
虽然 SSH 当前在接受新主机密钥时保存的格式类似于:
11.22.33.44 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEJJEs165NgdEcD94Xg3ySFA/qgkfytxNCX1X3pB2SPgU/mHLGXCXM8+VqMBXocM8OMOq2L0fDGr5mI+nGqjhNU=
Run Code Online (Sandbox Code Playgroud)
(注意:虽然我对公钥做了一些捏造,但它们的原始形式仍然完全不相似。)
只有第一种格式与部署插件兼容,而第二种格式被无条件忽略。谁能解释这种差异?
我需要连接到具有动态 IP 地址的主机。
每次 IP 更改时,SSH 都会提示我进行指纹验证:
The authenticity of host '...' can't be established.
RSA key fingerprint is ....
Are you sure you want to continue connecting (yes/no)?
Run Code Online (Sandbox Code Playgroud)
是否可以通过 SSH 传递主机公钥,以便:
这个问题不同于如何避免 SSH 对已知主机的主机验证?因为其他的问题,旨在抑制SSH验证,虽然我并不想抑制它:我也想有主机认证,只是用主机的公钥(这是我知道的,并将它存储在文件中),而不是SSHknown_hosts文件。
对我来说,另一个问题似乎是关于每次连接到不同的服务器,而不是连接到具有动态 IP 的单个知名服务器。
当我ssh进入远程客户端时,我收到警告:
Warning: Permanently added 'xx.xx.xx.xx' (ECDSA) to the list of known hosts.
Run Code Online (Sandbox Code Playgroud)
在哪里可以查看已知主机的列表?
我尝试过cat ~/.ssh/known_hosts,但这会以某种散列形式返回数据。有人知道解决办法吗?
我使用 Putty 连接到远程主机。由于这是我第一次这样做,正如预期的那样,添加了 ssh 密钥。
Google 帮助我找到了注册表项,但它不是known_hosts 格式。
我该如何获取该条目并将其转换为known_hosts 格式?
known_hosts 文件如下所示:-
[localhost]:8001 ssh-dss AAAAB3NzaC1kc3MAAACBAP1/U4EddRIpU
[10.18.60.198]:8001 ssh-dss AAAAB3NzaC1kc3MAAACBAP1/U4EddRIpUt9
// key are trimmed at the end
Run Code Online (Sandbox Code Playgroud)
这个key是通过Eclipse IDE添加的,想知道还有什么其他的方法可以将主机(IP)和它们的key添加到ssh/known_hosts文件中。
具体:- 如何为known_hosts 文件中的任何主机(IP)添加ssh-dss密钥。
编辑:-
我正在使用 JBoss BRMS,它将 git 用于 BRMS 项目,因此在通过 Git 在 Eclipse IDE 中克隆 BRMS 项目时,它给出以下错误
无法确定主机 'localhost' 的真实性。
DSA 密钥指纹为 e2:2c:62 //修剪。
您确定要继续连接吗?
然后它会自动将 ssh-dss 密钥添加到 known_hosts 文件中。
那么在哪里可以找到该密钥并将其手动添加到 knownhosts 文件中
我正在登录一个基于循环 DNS 主机名的服务器——“login.example.com”可以访问任意多个服务器。理想情况下,我希望能够更新我的known_hosts文件,以便可以在没有警告/错误的情况下到达任何机器,尽管我猜想如果有某种方法可以让所有服务器呈现相同的指纹,则可以进行回退/ 主机密钥。我见过这样的帖子,但“选择一个静态 ip 登录”并不是真正的选择。我想要一个真正的解决方案(如果有的话)。
使用 OpenSSH_5.9p1 OpenSSL 1.0.1 连接到服务器,它存储的 .ssh/known_hosts 格式如下:
|1|wwwwwwwwwwwwwww=|wwwwwwwwww= ecdsa-sha2-nistp256 AAAAAAAAAA+AAAAA=
Run Code Online (Sandbox Code Playgroud)
然后将该known_hosts 文件复制到另一台运行OpenSSH_4.5p1 OpenSSL 0.9.8d 的PC,它给出“无法建立真实性,您确定要继续连接吗”消息,就好像known_hosts 文件不正确一样。
当第二台 PC 为同一台服务器存储 known_hosts 时,它会以如下格式写入:
[10.2.3.4]:22 ssh-rsa AAAAAAAAAA/BBBBB/CCCCCC//DDDDDD
Run Code Online (Sandbox Code Playgroud)
有没有办法在两种格式之间进行转换?
我想知道我目前无法访问的机器的 MAC 地址。但是,我有一个来自 ssh 的 known_hosts 文件,其中包含一个有效条目,并且鉴于我收到有关更改 MAC 地址的警告,我认为该地址已被 ssh 存储在某处。有没有办法显示这个保存的 MAC 地址?
known-hosts ×11
ssh ×9
fingerprint ×2
putty ×2
git ×1
linux ×1
mac-address ×1
public-key ×1
security ×1
ssh-keys ×1
windows ×1