写shell免不了要远程执行shell命令,自然就要实现免登陆。免登陆的原理:
以上来自:http://blog.163.com/hbu_lijian/blog/static/126129153200910333623799/
公钥和私钥(我是文盲,钥字之前都是读yao,这是多音字这里应该念yue),是成对出现的,一旦任何一个做了更改都会验证失败。
1.免登陆的实现:
使用下例中ssky-keygen和ssh-copy-id,仅需通过3个步骤的简单设置而无需输入密码就能登录远程Linux主机。
ssh-keygen 创建公钥和密钥。
ssh-copy-id 把本地主机的公钥复制到远程主机的authorized_keys文件上。
ssh-copy-id 也会给远程主机的用户主目录(home)和~/.ssh, 和~/.ssh/authorized_keys设置合适的权限 。
步骤1: 用 ssh-key-gen 在本地主机上创建公钥和密钥
ligh@local-host$ ssh-keygen
-t rsa
Enter file in which to save the key (/home/jsmith/.ssh/id_rsa):[Enter
key]
Enter passphrase (empty for no passphrase): [Press enter key]
Enter same passphrase again: [Pess enter key]
Your identification has been saved in
/home/jsmith/.ssh/id_rsa.
Your public key has been saved in
/home/jsmith/.ssh/id_rsa.pub.
The key fingerprint is:
33:b3:fe:af:95:95:18:11:31:d5:de:96:2f:f2:35:f9
ligh@local-host
步骤2: 用 ssh-copy-id 把公钥复制到远程主机上
ligh@local-host$ ssh-copy-id
-i ~/.ssh/id_rsa.pub root@192.168.0.3
ligh@remote-host‘s password:
Now try logging into the machine, with ―ssh ?remote-host‘‖,
and check in:
.ssh/authorized_keys to make sure we haven‘t added extra keys that you weren‘t expecting.
[注: ssh-copy-id 把密钥追加到远程主机的 .ssh/authorized_key 上.]
步骤3: 直接登录远程主机
ligh@local-host$ ssh remote-host
Last login: Sun Nov
16 17:22:33
2008 from 192.168.1.2
[注: SSH 不会询问密码.]
ligh@remote-host$
[注: 你现在已经登录到了远程主机上]
2.登陆失效、公钥失效的情况
之前没有用ssh-copy-id复制公钥到远程机器上,而是用scp拷贝之后再手动加入到authorized_keys。
但是某一天这种做法忽然失效了。。。暂时也没找到原因。但是后来后来重新生成密钥,然后使用ssh-copy-id解决了问题。
注意重新生成密钥之后之前设置的免登陆slave端都要重新拷贝公钥。
分享到:
相关推荐
本示例提供了一个RSA加密工具类,用于生成公钥和私钥,并使用它们进行加密和解密操作,这对于保护数据库中的敏感信息,如密码,是非常必要的。 1. **RSA算法原理**: RSA算法基于数论中的大数因子分解难题。其基本...
Linux SSH 使用 SSH 公钥密钥自动登录 Linux 服务器 本文档将介绍如何使用 SSH 公钥密钥自动登录 Linux 服务器,解决频繁输入用户名和密码的问题。下面是相关的知识点: 1. SSH 公钥密钥生成:使用 `ssh-keygen` ...
本文仅提供了对数字证书原理和公钥私钥加密原理的基础解读,由于篇幅所限,无法深入到具体的技术细节和实现。如果希望进一步学习相关技术,可以参阅相关的专业书籍和在线资源,或者通过实践操作加深理解,如使用...
在Java中实现RSA公钥和私钥的生成,通常我们会使用Java Cryptography Extension (JCE) 提供的API,如`java.security.KeyPairGenerator`类。但是,根据你的描述,这里提供的代码是不直接依赖API,而是通过数学计算来...
在本文中,我们将详细介绍如何使用 SecureCRT 配置公钥和私钥登录 Linux 服务器。 公钥认证的优点 相比密码认证,公钥认证有以下几个优点: 1. 允许使用空密码,免去了每次登录都需要输入密码的麻烦。 2. 多用户...
C# RSA加密、解密、加签、验签、支持JAVA格式公钥私钥、PEM格式公钥私钥、.NET格式公钥私钥 对应文章: http://blog.csdn.net/gzy11/article/details/54573973
JWT公钥私钥操作工具类
6. **保存输出**:最后,将转换后的XML或PEM格式的公钥和私钥保存为文件,供后续使用。 在实际应用中,安全性和合法性是至关重要的。确保正确处理私钥,并遵守所有相关的法规和最佳实践,例如,不要在不安全的环境...
在管理服务器上,使用`ssh-keygen`命令生成一对rsa类型的公钥和私钥。例如: ```bash ssh-keygen -b 1024 -t rsa ``` 这里的`-b 1024`指定了密钥长度为1024位,`-t rsa`选择了RSA加密算法。当命令运行时,系统会询问...
本文将探讨数字证书的基本原理以及公钥私钥加密的概念,这些都是网络安全的基础。 **1. 公钥密码体制(Public-Key Cryptography)** 公钥密码体制,如标题所述,由三部分组成:公钥、私钥和加密解密算法。这种体制...
Java 中使用公钥加密私钥解密原理实现 License 控制 Java 中使用公钥加密私钥解密原理实现 License 控制是指在 Java 应用程序中使用公钥加密、私钥解密机制来实现 License 文件的控制。这种机制可以用来限制系统的...
本教程主要讲解如何在C# .NET环境中使用RSA进行公钥加密和私钥解密,以及私钥加密和公钥解密的操作。 首先,让我们了解RSA的基本原理。RSA算法基于两个大素数的乘积,这个乘积作为公钥,而这两个大素数作为私钥。...
RSA算法是一种非对称加密算法,它在信息...综上所述,C++实现RSA公钥私钥加密算法涉及了大数运算、素数检测、欧拉函数、模逆运算等多个数学和密码学概念。理解并实现这一算法有助于深入理解信息安全基础和加密技术。
发送方使用接收方的公钥对数据加密,接收方则使用自己的私钥解密。 2. **C#中的RSA加密**: 在C#中,可以使用`System.Security.Cryptography.RSACryptoServiceProvider`类来处理RSA操作。首先,需要生成一对公钥和...
在探讨公钥私钥加密解密、数字证书以及数字签名之前,我们需要先理解几个核心概念。 **1. 密钥对:** - 在非对称加密技术中,存在两种密钥——私钥和公钥。私钥由密钥对的所有者持有且必须保密,而公钥则是由密钥...
本文将详细解析如何使用Java实现公钥和私钥的加解密操作,以及相关的关键概念和代码示例。 首先,我们要了解公钥和私钥的基本原理。在非对称加密算法中,每一对密钥由一个公钥和一个私钥组成。公钥是公开的,可以被...
### Linux免密登录详解:利用MobaXterm实现公钥+私钥认证 #### 一、密钥对的概念 在介绍如何使用MobaXterm进行免密登录之前,首先需要理解密钥对的基本概念。密钥对是由一对公钥和私钥组成的,它们在数字加密领域...
公钥私钥体系是现代密码学中的核心概念,它基于一对密钥,即公开的公钥和私有的私钥,用于实现数据加密和解密。公钥可以被任何人知道,用于加密信息,而私钥必须保密,用于解密信息。这种机制确保了即使发送者和接收...