SSH下know_hosts的作用(转)

2023-05-16

原文地址:http://blog.csdn.net/yasaken/article/details/7348441 

在平时工作中,有时候需要SSH登陆到别的Linux主机上去,但有时候SSH登陆会被禁止,并弹出如下类似提示: 

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 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 is36:68:a6:e6:43:34:6b:82:d7:f4:df:1f:c2:e7:37:cc.Please contact your system administrator.Add correct host key in /u/xlian008/.ssh/known_hosts to get rid of this message.Offending key in /u/xlian008/.ssh/known_hosts:2RSA host key for 135.1.35.130 has changed and you have requested strict checking.Host key verification failed. 


比较奇怪,于是研究了一下。 
ssh会把你每个你访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts。当下次访问相同计算机时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告, 避免你受到DNS Hijack之类的攻击。我在上面列出的情况,就是这种情况。 

原因:一台主机上有多个Linux系统,会经常切换,那么这些系统使用同一ip,登录过一次后就会把ssh信息记录在本地的~/.ssh/known_hsots文件中,切换该系统后再用ssh访问这台主机就会出现冲突警告,需要手动删除修改known_hsots里面的内容。 

有以下两个解决方案: 
1. 手动删除修改known_hsots里面的内容; 
2. 修改配置文件“~/.ssh/config”,加上这两行,重启服务器。 
   StrictHostKeyChecking no 
   UserKnownHostsFile /dev/null 

优缺点: 
1. 需要每次手动删除文件内容,一些自动化脚本的无法运行(在SSH登陆时失败),但是安全性高; 
2. SSH登陆时会忽略known_hsots的访问,但是安全性低;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SSH下know_hosts的作用(转) 的相关文章

  • 如何通过ssh检查ubuntu服务器上是否存在php和apache

    如何通过ssh检查Ubuntu服务器上apache是 否安装了php和mysql 另外如果安装的话在哪个目录 如果安装了其他软件包 例如 lighttpd 那么它在哪里 确定程序是否已安装的另一种方法是使用which命令 它将显示您正在搜索
  • GitLab:无法将代码推送到服务器?

    我已经在 Ubuntu 服务器上安装了 GitLab 一切似乎都工作正常 除了我无法向服务器推送 拉取 克隆 当我按下时 我收到一般错误消息 fatal Could not read from remote repository Pleas
  • 无法让 TeamCity 使用默认私钥向 GitHub 进行身份验证

    我正在尝试让 TeamCity 构建我的私人 GitHub 存储库 当我显式设置密钥文件的路径时 我能够成功让我的 VCS 根通过连接测试 然而 尽管进行了大量的谷歌搜索 当我使用 默认私钥 选项时 我无法让它工作 我明白了com jcra
  • Windows 上的 SSH 没有 kex aleg 问题

    我在 Windows 上安装了 OpenSSH 然而 我得到没有小桶阿尔格尝试连接到我的 Amazon EC2 实例时出现问题 我可以使用相同的身份文件通过 WinSCP 和 Putty 连接它 我还在我的 etc sshd config
  • GridGain - 通过 Grid.startNodes API 使用 SSH 以编程方式打开节点

    我正在使用 Grid startNodes java util Collection java util Map boolean int int 如此处定义 http gridgain com api javadoc org gridgai
  • 通过 cron 进行 git 推送

    我正在尝试运行git push来自 cron 当我在 shell 上以交互方式执行命令时 一切顺利 从我的用户的 crontab 运行命令时 cron 会传递错误消息 Permission denied publickey 我认为这与查找或
  • 无法在 PHP 中使用 SFTP

    我正在用 PHP 编写一个简单的 SFTP 客户端 因为我们需要通过 n 个远程服务器以编程方式检索文件 我正在使用 PECL SSH2 扩展 不过 我遇到了障碍 php net 上的文档建议您可以这样做 stream fopen ssh2
  • 在 Windows 上为 Bitbucket 设置 SSH 密钥

    首先 我对 git repos 和命令行绝对是菜鸟 我在 Bitbucket 上有仓库 我基本上希望能够通过 gitbash 推送到存储库 而无需每次输入密码 我拥有的 Bitbucket 上的存储库已设置好代码 克隆存储库的本地目录 通过
  • Git,无法在 Windows 上克隆存储库

    我正在尝试在 Windows 上使用 git 克隆远程存储库 我可以在我的 mac 上克隆它 但在 Windows 上我遇到了问题 当使用 git bash 克隆时 我收到一条消息 指出服务器的主机密钥未缓存在注册表中 它要求我按 y 或
  • SSH:连接被远程服务器关闭

    我正在尝试 ssh 登录我的远程服务器 但每当我尝试使用 ssh 命令通过终端登录时 ssh root ip address 我收到错误 Connection closed by ip address 我检查了主机拒绝和主机允许 文件中没有
  • 使用knife ec2插件在VPC私有子网中创建虚拟机

    尽管我已经写了相当多的 Chef 文章 但我对 AWS VPC 和管理网络流量 尤其是堡垒主机 还相当陌生 使用 Knife ec2 插件 我希望能够从我的开发人员工作站动态创建和引导虚拟机 VM 应能够存在于我的 VPC 的公有子网或私有
  • 如何使用python远程执行进程

    我想使用 Python 连接到远程服务器并在远程服务器上执行进程 我希望能够获取进程的返回代码和标准错误 如果有 以前有没有人做过类似的事情 我已经用 ssh 完成了 但我想从 Python 脚本中完成 Cheers Use the 名为
  • MySQL Workbench(版本 6.0.8)SSH 身份验证问题

    我正在尝试通过 SSH 通过计算机 Y 连接到主机 X 上的 MySQL 服务器 相同的设置 但 MySQL 工作台的版本较旧 适用于我的另一个机器 CentOS 6 3 但是 相同的设置在我的 CentOS 6 5 上不起作用 我尝试使用
  • 使用 crypto/ssh 的 golang scp 文件

    我正在尝试通过 ssh 下载远程文件 以下方法在 shell 上运行良好 ssh hostname tar cz opt local folder gt folder tar gz 然而 golang 上的相同方法在输出工件大小方面存在一些
  • Ruby Net:SSH控制大师?

    我目前有一个 Ruby Rails 应用程序 需要建立大量的短 SSH 连接 使用 Ruby Net SSH 库可以正常工作 只是每次我想发出命令时应用程序都必须登录并协商密钥 这太慢了 有没有办法使用 Ruby Net SSH 启用 Co
  • php run git 收到“ssh 权限被拒绝”

    我正在尝试从浏览器中运行 git pull php 脚本 但我得到了 sh 连接到主机 git assembla com 端口 22 权限被拒绝 我的 PHP 脚本
  • 为什么 cygwin 无法读取我的主目录中的 .ssh/config 文件?

    我正在使用 cygwin 并且正在尝试设置 ssh config 文件 Cygwin 的文件夹位于我的 C 驱动器中 我的主目录是 C Users USER 我注意到 当我编辑 C Users USER ssh config 时 cygwi
  • SSH IdentitiesOnly=yes 转发我的所有密钥

    我一生都无法弄清楚为什么我的 SSH 配置转发了错误的密钥 我有两把钥匙 我们会打电话给他们home rsa and work rsa 我做了以下事情 eval ssh agent ssh add K ssh home rsa ssh ad
  • 如何从 ssh 配置文件中删除主机条目?

    文件的标准格式是 Host example HostName example com Port 2222 Host example2 Hostname two example com Host three example com Port
  • 为使用 SSH.NET SshClient.CreateShellStream 执行的命令 (sudo/su) 提供子命令

    我正在尝试使用 Renci SSH NET 从 C Web 应用程序连接到远程 Linux 服务器并执行 shell 脚本 我想一个接一个地运行脚本 但不知道如何运行脚本并读取输出并将其存储在标签中 我已经尝试了下面的代码 但无法一行接一行

随机推荐

  • usb/uart转网口模块选型设计 小结

    选型原则 通讯速率尽量可能快 xff0c 工作温度必须是工业级的 xff0c 成本尽量可能低 xff1b 保证用户可操作空间较大 1usb转网口 AX88772BLI xff0c ZLAN1003 xff0c IP101GRI xff08
  • Git bash基础操作指令 小结

    1 常用git指令 git的安装配置 xff08 只有初次使用需要配置 xff09 用户名和邮件 git config global user name 34 noxue 34 git config global user email ad
  • linux-ARM开发板--嵌入式开发平台-选型

    最近有一个项目以前一直在用工控机实现 xff0c 现在需要优化功能 缩减成本 xff0c 故有寻找linux ARM开发板的需求 xff1b 后期有很大可能还会自己会画PCB板 内核裁剪等设计的需求 xff1b 1 根据需求 xff0c 限
  • linux 线程与进程 -2-多线程应用编程

    多线程的管理 多线程的互斥锁和条件变量的使用 xff01 什么是进程 进程 xff08 process xff09 是一个已经开始执行但还没终止的程序实例 Linux系统下使用ps 命令可以查看到当前正在执行的进程 每个进程包含有进程运行环
  • 基于ARM开发板或linux工控机的远程操作的小结

    需求 xff1a xff08 1 xff09 黑龙江现场A处有一个一直在执行任务的工控机 xff08 或ARM板 xff09 xff0c 该板子处在一个局域网192 xxx 2 1网段 xff0c 局域网可以联网 xff1b xff08 2
  • linux-Ubuntu server输出.csv文件方法 小结

    导语 xff1a 在ARM上或在其他芯片上做开发 xff0c 有时候会有这样的需求 xff0c 将你工控机 开发板或者你的设备采集出来的数据做成一个exc列表 xff1b 最简单的方式就是用数据直接输出为 txt文件 xff0c 但是这样并
  • arm板/工控机 连接外网 小结

    arm板外网连接的总结 1 判断自己的开发板或者虚拟机是否连接外网的方式非常简单 直接ping外网的一个ip即可 xff0c 比如ping百度 2 如果arm开发板ping外网不同有几个思路去修复 xff08 1 xff09 先检查你的外网
  • Cannot access androidx.lifecycle.HasDefaultViewModelProviderFactory 警告

    项目androidx中 报警告 Cannot access androidx lifecycle HasDefaultViewModelProviderFactory 但是不影响运行 xff0c 解决方法 xff1a ViewModel a
  • 一些简单的shell脚本实例

    自己写了一下小的shell实例 xff0c 虽然很小 xff0c 但所有的大的程序都是由小的模块堆积起来的 xff0c 程序员一定要懂得一种脚本的书写 xff0c 而我 xff0c 只会在linux下工作 xff0c 所以就只能写linux
  • 房子装修工程师CSS(七): 伪元素 ::before 和 ::after的用法介绍

    一 W3C的解释用一句话概括 xff1a 单冒号 用于CSS3伪类 xff0c 双冒号 用于CSS3伪元素 单冒号写法兼容性比较强 可支持解析的浏览器较多 双冒号的写法只支持较新的主流浏览器 二 基础理论 before和 after 是用来
  • SSM框架整合时,无法正确连接数据库

    SSM框架整合时 xff0c 无法正确连接数据库 报错如下所示 xff1a 报错信息 xff1a Caused by java sql SQLException Access denied for user Miomiaomiao 64 l
  • 房子装修工程师CSS(八)伪类选择器

    一 伪类选择器 xff08 一 xff09 Pseudo Classes Selectors 伪类选择器 E not s E root E target E first child E last child E only child E n
  • 房子装修工程师CSS(九)伪类选择器

    xff08 九 xff09 E first of type 意思是 xff0c 在父元素下面寻找 第一个所匹配的子元素 下面的ul 和li xff0c 在ul 里面找到第一个li xff08 十 xff09 E last of type 在
  • 国际化时配置时配置struts.custom.i18n.resources常量三种方法:

    假设要定义配置一个 basename为globalMessages的strut custom i18n resources常量 1 在属性文件struts properties中定义 xff1a 在属性文件中定义basejname stru
  • java中return用法总结

    Java中return用于方法 xff0c 两个作用 xff1a xff08 1 xff09 返回方法指定类型的值 xff08 这个值总是确定的 xff09 xff0c 也可以是对象 xff08 2 xff09 方法的结束 两种形式 xff
  • AngularJS:实现动态添加输入控件功能

    AngularJS xff1a 实现动态添加输入控件功能 功能要求如下 xff1a 1 点击加号可以增加输入框 2 点击减号可以减少输入框 3 当输入框只有一个的时候 xff0c 不能再减少输入框 效果图如下 xff1a 只有一个输入框 有
  • angularjs数组基本操作

    1 ng click ng model ng bind ng class ng hide ng app 2 placeholder 3 中加入代码 xff1a true false 使用逗号隔开 xff0c 可以控制包括样式 xff0c 显
  • Jasmine 常用语法

    jasmine测试脚本 function jasmine基本语法介绍 xff1a describe string function xff1a 可以理解为是一个测试集或者测试包 xff08 官方称之为suite xff09 xff0c 主要
  • linux下隐藏文件 和 显示隐藏文件命令

    xff08 1 xff09 linux下隐藏文件和文件夹 xff08 目录 xff09 需要用到 mv 命令 其实超简单的 例子 xff1a 将a目录隐藏 命令 xff1a mv a a xff08 2 xff09 linux下显示隐藏文件
  • SSH下know_hosts的作用(转)

    原文地址 xff1a http blog csdn net yasaken article details 7348441 在平时工作中 xff0c 有时候需要SSH登陆到别的Linux主机上去 xff0c 但有时候SSH登陆会被禁止 xf