`
nigelzeng
  • 浏览: 600306 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

SSH建立信任关系实现免输密码登陆

阅读更多


为了方便管理,在需要频繁登陆机器,特别是在机器众多的时候,免密码登录系统就显得很需要了。

 

建立信任关系其实很简单……

 

模拟情况,A机器想要免密码用ssh登录B机器:

进行一下几步操作就可以完成免密码登陆了:

 

1、生成A机器的公私钥匙对,英文原文是这样的:Generating public/private rsa key pair.

 

用这条命令生成:ssh-keygen -b 1024 -t rsa

-b 选项是生成rsa钥匙对的位数,man手册中是这样描述的:

 

Specifies the number of bits in the key to create.  For RSA keys, the minimum size is 768 bits and the
             default is 2048 bits.  Generally, 2048 bits is considered sufficient.  DSA keys must be exactly 1024
             bits as specified by FIPS 186-2.

 

 说远一点,SSH的密钥选择不止有rsa,还有dsa,还有其他……

 这里推荐使用dsa,因为ssh-keygen在生成 DSA 密钥时,其长度只能为1024位(基于NIST FIPS 186-2);而 ssh-keygen 在 RSA 的密钥长度上没有限制。

(由于小于1024位密钥长度的 RSA 已经有被攻破的记录,所以RSA 2048 位密钥是更好的选择,也就是 -b 2048)

 

命令执行结果如下

 

[root@localhost ~]# ssh-keygen -b 1024 -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
40:44:8d:2c:20:bd:c0:1b:b2:01:9f:e8:f9:bb:db:67 root@localhost.localdomain
 

 

 

可以看到公钥和私钥都生成在了.shh目录下,公钥为id_rsa.pub,私钥为id_rsa

 

2、拷贝A机器的公钥到B机器的.shh目录,加入到authorized_keys文件中

用这个命令:scp .ssh/id_rsa.pub root@B机器IP:/root/.ssh/

完成拷贝

 

3、登录B机器,追加A机器的公钥到B机器的认证文件中:

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

 

OK,这个A机器到B机器的信任关系就建立好了。

 

你可以在A机器用SSH命令直接登录到B机器了。。。。。

 

--------------------------------------------------------------------------------------

另外一种拷贝公钥的方法,在生成好密钥对之后,使用下面这个命令:

 

[root@localhost ~]#ssh-copy-id -i id_rsa.pub root@machineB

 

-i 参数后面需要的是刚刚生成的id_rsa.pub公钥, ssh-copy-id 脚本会自动把id_rsa.pub里的内容追加到需要登录服务器的用户目录下,比如本例中的(/root/.ssh/authorized_keys中)

执行玩这条命令,即完成了信任关系的建立。

 

 

1
0
分享到:
评论

相关推荐

    在两台服务器之间建立信任关系解决scp,ssh等不用输入密码等问题.files.rar

    在两台服务器之间建立信任关系解决scp,ssh等不用输入密码等问题.files.rar

    ssh_信任主机

    实现从主机A直接 SSH 到主机B,C,无需密码 在LINUX配置主机信任时,对对端机(被免口令登录机器)的目录权限和文件权限相关说明:对端机的authorized_keys改为只有当前用户读取权限: $ chmod 600 authorized_keys ...

    Linux主机如何实现无需输入密码的远程登录或脚本远程执行

    linux机器日常运维过程中,经常需要在本地...  1、建立主机间的ssh信任关系实现不输入密码的登录  假设需要建立从usr1@localhost到usr2@remote这两对(主机,用户)间的信任关系,可以分为3步:  1)生成usr1

    Shell脚本实现自动输入密码登录服务器

    针对于ssh或scp命令,可能有人会回答是建立信任关系,关于建立ssh信任关系的方法请自行百度Google,只需要两行简单的命令即可搞定,但这并不是常规的解决方案,如果是ftp连接就没辙了,况且,你不可能为了执行某些...

    python使用paramiko实现ssh的功能详解

    个人认为python的paramiko模块是运维人员必学模块之一,其ssh登录功能是旅行居家必备工具。 安装paramiko很简单,pip install paramiko就搞定了,其依赖库会被一并安装。 paramiko的官方站点在这里:...

    在Linux下用scp复制文件无需输入密码的技巧

    在Linux环境下,两台主机之间传输文件一般使用scp命令,通常用scp命令通过ssh获取对方linux主机文件...通过建立信任关系,可以实现不输入密码,感兴趣的朋友跟着小编一起学习在Linux下用scp复制文件无需输入密码的技巧

    python模块之paramiko实例代码

    本文研究的主要是python模块之paramiko的相关用法,具体实现代码如下,一起来看看。 paramiko模块提供了ssh及sft进行远程登录服务器执行命令和上传下载文件的功能。这是一个第三方的软件包,使用之前需要安装。 1 ...

    Python paramiko模块的使用示例

    paramiko模块提供了ssh及sft进行远程登录服务器执行命令和上传下载文件的功能。这是一个第三方的软件包,使用之前需要安装。 1 基于用户名和密码的 sshclient 方式登录 # 建立一个sshclient对象 ssh = paramiko.SSH...

    OpenID简介及与struts2_spring_hibernate框架集成

    3.1. 业务逻辑层接口及实现类 - 17 - 3.2. Struts2的Action调用业务逻辑 - 19 - 3.2.1. 登录Action--OpenIDLoginAction - 19 - 3.2.2. 进入的Action—FirstPageAction - 20 - 3.3. JSP页面 - 20 - 3.4. 运行示例 - ...

    企业级Linux服务攻略

    11.3.4 建立信任群 11.3.5 配置多NIS服务器 11.3.6 NIS固定端口设置 11.3.7 自动挂载NIS用户主目录 11.3.8 启动与停止NIS服务 11.3.9 NIS应用案例 11.4 客户端配置 11.4.1 所需软件 11.4.2 加入NIS域 11.4.3 修改...

    网络安全协议(PPT-146页).pptx

    147 第四章 网络安全协议 1 第四章 网络安全协议 SSL协议 SET协议 IPSec协议 2 因特网与TCP/IP安全-1TCP/IP协议栈 TCP/IP是一组通信协议的缩写 ISO/OSI模型及其与TCP/IP的关系 3 因特网与TCP/IP安全-IP协议 IP数据包...

    switch security.rar

    4、使用SSH实现安全的登录 端口安全> ·SW端口安全是2层特性,提供3种保护: 1. 可以限定一个接口所能学习的MAC地址数量 2. 可以在一个接口静态绑定MAC地址 1.基于主机MAC来允许流量  ·可定义2个参数:授权...

Global site tag (gtag.js) - Google Analytics