写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加密工具类。包含钥匙的生成和检测公钥私钥,具体看类说明,做Java或者Android可以直接拿来使用 非常方便!
Java实现,公钥私钥通过计算生产,没有调用API,可以更直观的理解RSA公钥私钥的生成 资源中包含源码、jar包。不管是不想造轮子还是想要学习的同学都适用 也可以根据需要改造代码
LinuxSSH使用ssh公钥密钥自动登陆linux服务器.pdf
LinuxSSH使用ssh公钥密钥自动登陆linux服务器收集.pdf
ssh配置公钥和私钥登陆SecureCRT[整理].pdf
通过RSA.PFX证书提取XML/PEM公钥私钥,源码,目前只支持PFX格式的提取,通过RSA.PFX证书提取XML/PEM公钥私钥,源码,目前只支持PFX格式的提取
数字证书原理,公钥私钥加密原理基础概念和原理,数字证书的管理与使用
C# RSA加密、解密、加签、验签、支持JAVA格式公钥私钥、PEM格式公钥私钥、.NET格式公钥私钥 对应文章: http://blog.csdn.net/gzy11/article/details/54573973
JWT公钥私钥操作工具类
公钥私钥数字签名数字证书详解
C# RSA加密、支持JAVA格式公钥私钥
生成RSA公钥和私钥的工具:Windows版OpenSSL 亲测可用。提供32位系统和64位系统版本
Java实现,没有直接调用KeyPairGenerator,自己使用BigInteger计算公钥私钥。 有源码有jar包,包含简单的Demo,不喜欢造轮子的可以直接引入jar包调用, 想要学习的也可以更直观的了解RSA公钥私钥生成及加密、解密...
java中使用公钥加密私钥解密原理实现license控制
C++书写,采用RSA加密算法,可生成公钥和私钥加密解密。
RSA加密解密算法,可以实现现场的加密解密,可以更改公钥私钥。
用java代码生成公钥私钥密钥对,公钥加密私钥解密,私钥加密公钥解密。直接导入idea,可直接运行。小编正在看区块链的多重加密,看到这儿了就写了一个demo,用于理解加解密。
Java 公钥和私钥加密解密源码,写了注释可以直接运行,测试没有问题
亲测可用,可参考:https://blog.csdn.net/qq_37835111/article/details/87358779