ssh证书登陆

使用SSH时使用公钥认证详解 什么是公钥认证? 当我们在使用ssh远程登录服务器时,主要分为两个认证过程: 主机验证过程 身份验证过程 其中身份验证过程按验证的先后顺序有以下五种方法: gssapi-with-mic: hostbased: -此认证方式不安全且大大增加认证时间,建议到配置文件/etc/ssh/sshd.config中进行更改。 publickey: -此认证方式即为公钥认证。我们推荐使用这种方法进行认证... 阅读详情

前言

本文基于实际Linux管理工作,实例讲解工作中使用ssh证书登录的实际流程,讲解ssh证书登录的配置原理,基于配置原理,解决实际工作中,windows下使用SecureCRT证书登录的各种问题,以及实现hadoop集群部署要求的无密码跳转问题。

ssh有密码登录和证书登录,初学者都喜欢用密码登录,甚至是root账户登录,密码是123456。但是在实际工作中,尤其是互联网公司,基本都是证书登录的。内网的机器有可能是通过密码登录的,但在外网的机器,如果是密码登录,很容易受到攻击,真正的生产环境中,ssh登录都是证书登录。

证书登录的步骤

1.客户端生成证书:私钥和公钥,然后私钥放在客户端,妥当保存,一般为了安全,访问有黑客拷贝客户端的私钥,客户端在生成私钥时,会设置一个密码,以后每次登录ssh服务器时,客户端都要输入密码解开私钥(如果工作中,你使用了一个没有密码的私钥,有一天服务器被黑了,你是跳到黄河都洗不清)。

2.服务器添加信用公钥:把客户端生成的公钥,上传到ssh服务器,添加到指定的文件中,这样,就完成ssh证书登录的配置了。

假设客户端想通过私钥要登录其他ssh服务器,同理,可以把公钥上传到其他ssh服务器。

真实的工作中:员工生成好私钥和公钥(千万要记得设置私钥密码),然后把公钥发给运维人员,运维人员会登记你的公钥,为你开通一台或者多台服务器的权限,然后员工就可以通过一个私钥,登录他有权限的服务器做系统维护等工作,所以,员工是有责任保护他的私钥的,如果被别人恶意拷贝,你又没有设置私钥密码,那么,服务器就全完了,员工也可以放长假了。

客户端建立私钥和公钥

在客户端终端运行命令

ssh-keygen -t rsa

rsa是一种密码算法,还有一种是dsa,证书登录常用的是rsa。

假设用户是blue,执行 ssh-keygen 时,才会在我的home目录底下的 .ssh/ 这个目录里面产生所需要的两把 Keys ,分别是私钥 (id_rsa) 与公钥 (id_rsa.pub)

另外就是私钥的密码了,如果不是测试,不是要求无密码ssh,那么对于passphrase,不能输入空(直接回车),要妥当想一个有特殊字符的密码。

ssh服务端配置

ssh服务器配置如下:

复制代码
vim /etc/ssh/sshd_config
#禁用root账户登录,非必要,但为了安全性,请配置
PermitRootLogin no

# 是否让 sshd 去检查用户家目录或相关档案的权限数据,
# 这是为了担心使用者将某些重要档案的权限设错,可能会导致一些问题所致。
# 例如使用者的 ~.ssh/ 权限设错时,某些特殊情况下会不许用户登入
StrictModes no

# 是否允许用户自行使用成对的密钥系统进行登入行为,仅针对 version 2。
# 至于自制的公钥数据就放置于用户家目录下的 .ssh/authorized_keys 内
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      %h/.ssh/authorized_keys

#有了证书登录了,就禁用密码登录吧,安全要紧
PasswordAuthentication no
复制代码

配置好ssh服务器的配置了,那么我们就要把客户端的公钥上传到服务器端,然后把客户端的公钥添加到authorized_keys

在客户端执行命令

scp ~/.ssh/id_rsa.pub blue@<ssh_server_ip>:~

在服务端执行命令

cat  id_rsa.pub >> ~/.ssh/authorized_keys

如果有修改配置/etc/ssh/sshd_config,需要重启ssh服务器

/etc/init.d/ssh restart

 

客户端通过私钥登录ssh服务器

ssh命令

ssh -i /blue/.ssh/id_rsa blue@<ssh_server_ip>

scp命令

scp -i /blue/.ssh/id_rsa filename blue@<ssh_server_ip>:/blue

每次敲命令,都要指定私钥,是一个很繁琐的事情,所以我们可以把私钥的路径加入ssh客户端的默认配置里

修改/etc/ssh/ssh_config

#其实默认id_rsa就已经加入私钥的路径了,这里只是示例而已
IdentityFile ~/.ssh/id_rsa
#如果有其他的私钥,还要再加入其他私钥的路径
IdentityFile ~/.ssh/blue_rsa

其他应用场景

SecureCRT密钥key远连接程ssh证书登录Linux

  国内大部分人用的系统是windows,而windows下有很多ssh客户端图形工作,最流行,功能最强大的就是SecureCRT了,所以我会单独针对SecureCRT简单讲下实现ssh证书登录Linux的要点,步骤如下:

  1:在SecureCRT创建私钥和公钥:主菜单->工具->创建公钥->选择RSA->填写私钥的密码->密钥长度填为1024->点击完成,生成两个文件,默认名为identity和identity.pub

  2.把私钥和公钥转换为OpenSSH格式:主菜单->工具->转换私钥到OpenSSH格式->选择刚生成私钥文件identity->输入私钥的密码->生成两个文件,指定为id_rsa,id_rsa.pub 

  3.把公钥id_rsa.pub上传到ssh服务器,按照之前配置服务器端的证书,再配置一次。

  另外,如果你之前用windows的 SecureCRT的证书登录linux的,有一天你换成了linux,并希望通过原来的私钥登录公司的服务器,那么可以把id_rsa拷贝倒~/.ssh/目录下,配置ssh客户端参考上文。

  备注:ssh对证书的文件和目录权限比较敏感,要么根据出错提示设置好文件和目录权限,要么是把StrictModes选项设置为no

hadoop部署的无密码ssh登录

hadoop要求master要无密码跳转到每个slave,那么master就是上文中的ssh客户端了,步骤如下

   在hadoop master上,生成公钥私钥,这个场景下,私钥不能设置密码。

   把公钥上传到每个slave上指定的目录,这样就完成了ssh的无密码跳转了。

总结

ssh证书登录,在实际工作才是最常用的登录方式,本人结合了真正工作的场景普及了ssh证书登录的知识,并根据流行的hadoop部署和windows下最常用的SecureCRT实例讲解了证书登录。


家用网络附加存储OpenMediaVault安装内网穿透实现跨网络远程连接 在数字化时代,数据管理变得越来越重要。无论是家庭还是小型企业,高效便捷的数据存储与共享都成了必备技能。网络附加存储设备(NAS)因其强大的功能、灵活的操作以及多样的应用场景,迅速成为了许多人的首选。 OpenMediaVault(简称OMV)作为一款基于Debian Linux的开源解决方案,凭借其模块化设计丰富的插件系统,在用户中积累了极高的口碑。它不仅提供了友好的Web管理界面,还支持多种数据管理共享功能,让家庭小企业用户的存储需求得到了极大的满足。 阅读详情

相关推荐

告别卡顿闪烁!在Cesium 1.134中集成SOG格式,让400万高斯秒级加载

本文详细介绍了如何在Cesium 1.134中集成SOG格式,实现400万高斯数据的秒级加载,解决传统加载方式导致的卡顿闪烁问题。通过空间索引重构、属性量化编码WebGPU原生支持等技术,SOG格式显著提升了三维地理空间可视化的性能。文章还提供了环境准备、模型转换Cesium集成的实战指南,帮助开发者高效优化项目。

weixin_29313817的博客 476

SSH公钥原理(密钥,秘钥,私钥)(看了还是懵逼啊!)

文章目录1. 初见SSH2. SSH工作原理1. 基于口令的认证2.基于公钥认证3. SSH实践4 总结3. 为什么需要known_hosts? 1. 初见SSH SSH是一种协议标准,其目的是实现安全远程登录以及其它安全网络服务。 SSH仅仅是一协议标准,其具体的实现有很多,既有开源实现的OpenSSH,也有商业实现方案。使用范围最广泛的当然是开源实现OpenSSH。 2. SSH工作原理 在讨论SSH的原理使用前,我们需要分析一个问题:为什么需要SSH? 从1.1节SSH的定义中可以看出,SSH

Dontla的博客 2万+

解决Jupyter Notebook中Plotly图表显示问题

摘要:在Jupyter Notebook中使用Plotly绘图时遇到图表无法显示的问题。通过分析发现Python 3.12版本与Jupyter存在兼容性问题。解决方案是将Python降级到3.11版本,重新创建虚拟环境后图表正常显示。这表明版本兼容性对数据可视化工具至关重要,环境配置检查是解决问题的关键步骤。该案例为遇到类似问题的开发者提供了参考方案。

m0_74337424的博客 109

ssh证书登录(实例详解)

前言 本文基于实际Linux管理工作,实例讲解工作中使用ssh证书登录的实际流程,讲解ssh证书登录的配置原理,基于配置原理,解决实际工作中,windows下使用SecureCRT证书登录的各种问题,以及实现hadoop集群部署要求的无密码跳转问题。 ssh密码登录证书登录,初学者都喜欢用密码登录,甚至是root账户登录密码是123456。但是在实际工作中,尤其是互联网公司,基本都是证书...

weixin_34336526的博客 1067

ssh 公钥私钥原理

SSH(SecureShell,安全外壳)是一种网络安全协议,通过加密认证机制实现安全的访问文件传输等业务。传统远程登录或文件传输方式,例如Telnet、FTP,使用明文传输数据,存在很多的安全隐患。随着人们对网络安全的重视,这些方式已经慢慢不被接受。SSH协议通过对网络数据进行加密验证,在不安全的网络环境中提供了安全登录其他安全网络服务。作为Telnet其他不安全远程shell协议的安全替代方案,目前SSH协议已经被全世界广泛使用,大多数设备都支持SSH功能。

dzqxwzoe的博客 2921

SSH证书登陆配置详解

1. 在linux服务器上,ssh-keygen -t rsa 生成公钥私钥, 私钥下载到本地,登陆的时候需要用私钥。 不用window ssh客服端来生成,试过不好使。 2.在linux服务器上,进行SSH服务端配置,vim /etc/ssh/sshd_config 使其允许公钥登陆密码登陆可以禁止。 3. 执行cat id_rsa.pub >> ~/.ssh/aut

洪文聊架构 3603

通过证书方式实现ssh的无密码登陆

  相关文章很多,大同小异,本文只是为了按照那些文章配置,但是还是需要输入密码的情况写的。 关键字:SSH证书方式登陆依然需要输入密码 两台linux机器:A B 都已经安装上OpenSSH,A上通过ssh-keygen生成一对密钥, 公钥通过任意方式放到B的~/.ssh/authorized_keys文件里面。 .ssh目录权限755,authorized_keys权限600。 ...

iteye_355的博客 159

SSH证书登陆

前言 本文基于ubuntu20.04 LST版本,通过在mac上使用VMware安装linux虚拟机实现。 SSH证书登陆 Secure Shell(SSH) 是由 IETF(The Internet Engineering Task Force) 制定的建立在应用层基础上的安全网络协议。它是专为远程登录会话(甚至可以用Windows远程登录Linux服务器进行文件互传)其他网络服务提供安全性的协议,可有效弥补网络中的漏洞。通过SSH,可以把所有传输的数据进行加密,也能够防止DNS欺骗IP欺骗。还有一个

weixin_46502350的博客 807

ssh 证书方式远程登陆linux主机

在客户机上使用ssh-keygen命令生成私钥文件id_rsa与公钥文件id_rsa.pub使用scp命令(其它命令也可)将公钥文件导入到linux主机当中,再将id_rsa.pub文件的内容复制到~/.ssh/authorized_keys当中(也可以使其它文件,这个在/etc/sshd/sshd_config文件AuthorizedKeysFile字段中设置)重启ssh服务(使用Fedora系

zheng7yan的专栏 1879

ssh 证书登陆

通过 SSH(Secure Shell)登录 Linux 服务器常见的认证方式有密码证书两种。从安全角度考虑,大家都推荐用证书登录。第一次在服务器上配置 SSH 使用证书登录,并制作证书然后登录成功还是费了不少力气。配置证书登录 SSH 的过程还挺复杂。 记录配置 SSH 证书并从 Windows 系统中使用 PuTTY  FileZilla 登录的操作过程以方便下次使用。

Skyline 8155

Centos7证书登陆SSH配置

Step1: 登陆用户操作 $mkdir -p ~/.ssh $chmod -R 700 ~/.ssh $touch ~/.ssh/authorized_keys $chmod -R 600 ~/.ssh/authorized_keys Step2: 将登录用的公用证书复制进~/.ssh/authorized_keys Step3: Root用户操作 #vi /etc...

weixin_45040801的博客 297

ssh证书认证登陆

服务器与服务器进行scp,备份时都需要密码的认证造成了很多不便,以及安全的隐患,利用ssh证书认证可以方便的进行备份与拷贝,提高了安全性能。 方法如下: 在服务器A上:创建密钥 [root@localhost ~]# ssh-keygen -t rsa Generating public/private rsa key pair. En...

weixin_34261739的博客 205

zz:Windows下通过证书验证登陆SSH

●利用SecureCRT/PUTTY工具生成public/private key→SecureCRT生成public/private key→在linux配置SecureCRT生成的public key→配置SecureCRT的SSH2 PublicKey连接→PUTTY生成public/private key→在linux中配置PUTTY生成的public key 这里所说的Windo...

flw521521的专栏 489

LINUX使用RSA 密钥登录

使用密钥登录分为3步: 1、生成密钥(公钥与私钥); 2、放置公钥(Public Key)到服务器~/.ssh/authorized_key文件中; 3、配置ssh客户端使用密钥登录。 客户机 首先进入 Linux 系统的用户目录下的 .ssh 目录 cd ~/.ssh/ 执行ls命令,此时目录为空 执行 ssh-keygen 命令创建密钥对 ssh-keygen -t rsa 执行密钥生成命令,基本上是一路回车既可以了,但是需要注意的是:执行命令的过程中是会输入密钥的密...

qq_35493807的博客 3926

SSH公钥私钥认证原理

密码认证缺点:用户无法空密码登录密码容易被破解服务器上的一个账号给多个人使用时,必须所有使用者都知道密码,导致容易泄露,修改密码时要通知所有人公钥认证:允许空密码登录多人使用者可以通过各自的密钥登录到系统的同一个用户上公钥,一串加密字符串,任何人都能看到,用户加密密钥,只有拥有者看到,用于解密通过公钥加密的的密文使用密钥轻松解密,但根据...

weixin_34127717的博客 423

ssh 公钥私钥认证原理

通常,通过ssh登录远程服务器时,使用密码认证,分别输入用户名密码,两者满足一定规则就可以登录。但是密码认证有以下的缺点: 用户无法设置空密码(即使系统允许空密码,也会十分危险)密码容易被人偷窥或猜到服务器上的一个帐户若要给多人使用,则必须让所有使用者都知道密码,导致密码容易泄露,而且修改密码时必须通知所有人 而使用公钥认证则可以解决上述问题。 公钥认证允许使用空密码,省去每次登录

cnbird's blog 2万+

ssh 公钥私钥认证操作及原理 (转载)

本文是转载自 https://blog.csdn.net/liubo2012/article/details/8894143 ssh 公钥私钥认证操作及原理 booooooooooooooooooo 2013-05-07 10:57:48 14043 收藏 3 分类专栏: linux linux 专栏收录该内容 13 篇文章0 订阅 订阅专栏 本文基于实际Linux管理工作,实例讲解工作中使用ssh证书登录的实际流程,讲解ssh证书登录的配置原理,基于配置原理,解决实际工作中,windows下使用Sec

roufoo的博客 4065

3分钟带你搞定SSH工作原理

说起Linux操作系统,对于做技术的人来说,没有不熟悉的;熟悉Linux的人那肯定都对SSH不陌生。ssh是一种用于安全访问远程服务器的协议,远程管理工具。它之所以集万千宠爱为一身,就是因为它的安全性。那么它到底是怎么样来保证安全的呢? 首先,在讲SSH是如何保证安全的之前,我们先来了解以下几个密码学相关概念:   一、对称加密算法(DES) ① Jack想要给Harry发送信息一个信...

黑马程序员官方博客 5154

QML C++混合编程宝典.zip_C语言能实现gui编程吗

Qt在当下嵌入式开发中越来越热,而QML的引入,开辟了界面功能解耦开发的先河,这份资料系统介绍了Qt QML开发技术,详细说明了C++ QML如何交互,推荐给大家一起学习。

上一篇: Nginx配置文件详解
deepwine
博客等级 码龄11年 0粉丝 1原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值