禁用远程主机对SSH的公钥进行检查的方法

禁用远程主机对SSH公钥进行检查的方法是通过修改SSH客户端配置文件来实现。具体步骤如下:

1. 打开SSH客户端配置文件

在终端中打开SSH客户端配置文件 ~/.ssh/config (如果该文件不存在,可以创建一个)

vi ~/.ssh/config

2. 添加配置内容

在配置文件中添加以下内容:

Host *
StrictHostKeyChecking no
UserKnownHostsFile=/dev/null
  • Host *:表示对所有主机都禁用公钥检查
  • StrictHostKeyChecking no:表示禁用严格主机密钥检查
  • UserKnownHostsFile=/dev/null:表示禁用对已知的主机密钥进行验证,并且将所有主机都视为未知主机

保存配置文件并退出。

示例说明

示例一:连接GitHub

假设有一台Ubuntu主机需要从GitHub拉取代码并执行构建部署等操作。如果不禁用公钥检查,可能会在第一次连接时遇到以下错误:

The authenticity of host 'github.com (207.97.227.239)' can't be established.
RSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no)?

这个提示会在 SSH 连接时出现,告诉你当前连接的主机没有在本地 SSH 客户端的证书列表中,会询问是否要添加该主机并信任其 SSH 证书。如果选择“yes”,会将主机添加到本地证书列表,以前会对该主机进行验证。由于常规的 SSH 连接大多数情况下都是交互式的,这个提示并不会对正常的操作产生太多影响。但是,如果需要通过脚本或其他工具自动化执行 SSH 连接,这个交互环节显然是不利于执行的。

为了解决这个问题,可以通过禁用公钥检查来实现自动化 SSH 连接,示例如下:

Host github.com
    User git
    Hostname github.com
    IdentityFile ~/.ssh/id_rsa
    StrictHostKeyChecking no
    UserKnownHostsFile=/dev/null

在上面的示例中,添加了一个名为“github.com”的主机,并对该主机禁用了公钥检查,这样我们就可以无交互的方式连接 GitHub 了。

示例二:连接内网主机

假设需要连接一个内网主机,该主机可能无法被任何外部计算机所访问,因此在首次连接该主机时可能会出现以下错误:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

这样的错误提示意味着远程主机的 SSH 公钥被修改或更换过,因此需要重新验证。如果确定公钥是正确的,可以通过禁用公钥检查来实现 SSH 连接,示例如下:

Host internal_host
    User john
    Hostname 192.168.1.10
    StrictHostKeyChecking no
    UserKnownHostsFile=/dev/null

在上面的示例中,添加了一个名为“internal_host”的主机,并对该主机禁用了公钥检查,这样我们就可以无交互地连接内网主机了。但需要注意的是,禁用公钥检查存在安全风险,因此在一定程度上降低了安全性。建议在非必须的情况下尽量不要禁用公钥检查。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:禁用远程主机对SSH的公钥进行检查的方法 - Python技术站

(0)
上一篇 2023年5月24日
下一篇 2023年5月24日

相关文章

  • Linux_unix

    Linux/Unix 基础入门攻略 作为一名计算机爱好者,你一定听说过 Linux 和 Unix 操作系统。这两个操作系统都被广泛地应用于服务器领域和科学计算,因其稳定性、安全性和高效性而备受推崇。本文将为初学者介绍 Linux 和 Unix 操作系统的基础知识和入门指南,让你轻松掌握它们的基本使用方法。 Linux 和 Unix 的区别 首先来了解一下两者…

    Linux 2023年5月14日
    00
  • 如何在Linux系统上管理系统服务?

    在Linux系统上管理系统服务一般使用Systemd来实现。下面是Linux系统上管理系统服务的完整攻略: 1. Systemd简介 Systemd是一个用于管理Linux系统中系统和服务启动,停止和管理的系统,是Linux发行版中最常用的系统初始化和进程管理工具之一,它可以通过systemctl命令来启动、停止、重启、热重新加载以及查看服务的状态等。 2.…

    Linux 2023年4月19日
    00
  • Linux下重启JBoss进程的脚本

    2010-10-09 10:12:23|  分类: Linux 订阅     版本一,还不知道pgrep命令时:#!/bin/bash echo “–>1 kill old process start…,PID=”$(ps -ef | grep “jboss-server” | grep “java” | awk ‘{print $2}’)kil…

    Linux 2023年4月11日
    00
  • Ubuntu 16.04源码编译安装Apache 2.4.25教程

    以下是“Ubuntu16.04源码编译安装Apache2.4.25教程”的完整使用攻略,包含两个示例说明。 步骤 下载Apache代码。在终端中输入以下命令: bash wget http://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.25.tar.gz 解压源代码。在终端中输入以下命令: ba…

    Linux 2023年5月13日
    00
  • 如何为CentOS 7配置静态IP地址的两种方法

    为CentOS 7配置静态IP地址是每个Linux管理员必须了解的操作,本文将介绍两种方法,帮助您完成操作。 方法1:使用图形界面进行配置 步骤1:打开“网络”设置 在CentOS 7的桌面环境下,单击右上角的菜单栏,选择“网络设置”菜单项。此时会弹出网络设置窗口。 步骤2:选择连接 选择需要配置静态IP地址的连接,这里以“有线连接1”为例。单击该连接右边的…

    Linux 2023年5月30日
    00
  • Linux select多路复用介绍(转) 转载:http://www.cnblogs.com/Anker/archive/2013/08/14/3258674.html 1、基本概念

    1、基本概念   IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程。IO多路复用适用如下场合:   (1)当客户处理多个描述字时(一般是交互式输入和网络套接口),必须使用I/O复用。   (2)当一个客户同时处理多个套接口时,而这种情况是可能的,但很少出现。   (3)如果一个TCP服务器既要处理监听套接口,又要处理已连接套…

    Linux 2023年4月13日
    00
  • CentOS 7配置LNMP开发环境及配置文件管理详解

    CentOS7配置LNMP开发环境及配置文件管理详解 环境概述 在CentOS7操作系统上,我们常常需要搭建一个LNMP服务器开发环境,以便进行Web开发等相关工作。LNMP环境的构成是Linux、Nginx、MySQL和PHP的缩写,这里我们选用以上四个组件来搭建我们的开发环境。 操作步骤 1. 安装LNMP环境 首先需要安装LNMP环境,这个操作中我们需…

    Linux 2023年5月14日
    00
  • Linux 下grep 命令的使用

    一、常用的参数 1、-c 显示匹配内容的行数2、-i 忽略大小写 3、-r 查找所有子目录,会以文件名和匹配内容的形式显示,可以加-l参数,来只显示文件名 4、-n 显示在文件中出现的行号 5、–color 字符串被染成的颜色   二、Grep正则表达式 ^ 锚定行的开始 如:’^grep’匹配所有以grep开头的行。 $ 锚定行的结束 如:’grep$’…

    Linux 2023年4月12日
    00
合作推广
合作推广
分享本页
返回顶部