`
angelguo
  • 浏览: 119796 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Linux下实现免密码登录(超详细)

 
阅读更多

1.Linux下生成密钥

  ssh-keygen的命令手册,通过”man ssh-keygen“命令:

  通过命令”ssh-keygen -t rsa“

  生成之后会在用户的根目录生成一个 “.ssh”的文件夹

  进入“.ssh”会生成以下几个文件

  authorized_keys:存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥

  id_rsa : 生成的私钥文件

  id_rsa.pub : 生成的公钥文件

  know_hosts : 已知的主机公钥清单

    如果希望ssh公钥生效需满足至少下面两个条件:

      1) .ssh目录的权限必须是700 

     2) .ssh/authorized_keys文件权限必须是600

2.远程免密登录

  原理图:

  常用以下几种方法:

    2.1 通过ssh-copy-id的方式

    命令: ssh-copy-id -i ~/.ssh/id_rsa.put <romte_ip>

    举例:      

1
2
3
4
5
6
7
8
9
10
11
[root@test .ssh]# ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.91.135
root@192.168.91.135's password:
Now try logging into the machine, with "ssh '192.168.91.135'", and check in:
 
.ssh/authorized_keys
 
to make sure we haven't added extra keys that you weren't expecting.
 
[root@test .ssh]# ssh root@192.168.91.135
Last login: Mon Oct 10 01:25:49 2016 from 192.168.91.133
[root@localhost ~]#

    常见错误:

      [root@test ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.91.135

      -bash: ssh-copy-id: command not found //提示命令不存在

      解决办法:yum -y install openssh-clients

   2.2 通过scp将内容写到对方的文件中

      命令:scp -p ~/.ssh/id_rsa.pub root@<remote_ip>:/root/.ssh/authorized_keys

      举例:

1
2
3
4
5
6
7
8
9
[root@test .ssh]# scp -p ~/.ssh/id_rsa.pub root@192.168.91.135:/root/.ssh/authorized_keys
root@192.168.91.135's password:
id_rsa.pub 100% 408 0.4KB/s 00:00
[root@test .ssh]#
[root@test .ssh]#
[root@test .ssh]#
[root@test .ssh]# ssh root@192.168.91.135
Last login: Mon Oct 10 01:27:02 2016 from 192.168.91.133
[root@localhost ~]#

      也可以分为两步操作:

$ scp ~/.ssh/id_rsa.pub root@<remote_ip>:pub_key //将文件拷贝至远程服务器
$ cat ~/pub_key >>~/.ssh/authorized_keys //将内容追加到authorized_keys文件中, 不过要登录远程服务器来执行这条命令

    2.3 通过Ansible实现批量免密

2.3.1 将需要做免密操作的机器hosts添加到/etc/ansible/hosts下:

  [Avoid close]
  192.168.91.132
  192.168.91.133
  192.168.91.134

2.3.2 执行命令进行免密操作

  ansible <groupname> -m authorized_key -a "user=root key='{{ lookup('file','/root/.ssh/id_rsa.pub') }}'" -k

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@test sshpass-1.05]# ansible test -m authorized_key -a "user=root key='{{ lookup('file','/root/.ssh/id_rsa.pub') }}'" -k
  SSH password: ----->输入密码
  192.168.91.135 | success >> {
  "changed": true,
  "key": "ssh-rsa    AAAAB3NzaC1yc2EAAAABIwAAAQEArZI4kxlYuw7j1nt5ueIpTPWfGBJoZ8Mb02OJHR8yGW7A3izwT3/uhkK7RkaGavBbAlprp5bxp3i0TyNxa/apBQG5NiqhYO8YCuiGYGsQAGwZCBlNLF3gq1/18B6FV5moE/8yTbFA4dBQahdtVP PejLlSAbb5ZoGK8AtLlcRq49IENoXB99tnFVn3gMM0aX24ido1ZF9RfRWzfYF7bVsLsrIiMPmVNe5KaGL9kZ0svzoZ708yjWQQCEYWp0m+sODbtGPC34HMGAHjFlsC/SJffLuT/ug/hhCJUYeExHIkJF8OyvfC6DeF7ArI6zdKER7D8M0SM  WQmpKUltj2nltuv3w== root@localhost.localdomain",
  "key_options": null,
  "keyfile": "/root/.ssh/authorized_keys",
  "manage_dir": true,
  "path": null,
  "state": "present",
  "unique": false,
  "user": "root"
  }
  [root@test sshpass-1.05]#

2.4 手工复制粘贴的方式

  将本地id_rsa.pub文件的内容拷贝至远程服务器的~/.ssh/authorized_keys文件中

以上所述是小编给大家介绍的Linux下实现免密码登录,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

原文链接:http://www.cnblogs.com/LuisYang/archive/2016/10/12/5952871.html

分享到:
评论

相关推荐

    Linux两台服务器之间复制文件及免密码登录的方法

    在Linux环境中,尤其是在管理和维护多台服务器时,高效地在服务器之间复制文件和实现免密码登录是至关重要的。本文将详细讲解如何在两台Linux服务器之间进行文件复制以及设置免密码登录,以简化日常运维工作。 首先...

    linux 普通用户切换成root免密码的实现

    在Linux系统中,普通用户通常没有管理...总的来说,通过配置PAM模块和管理用户组,可以在Linux上实现普通用户无密码切换到root。然而,这需要权衡便捷性和安全性,建议仅在必要时使用,并且保持良好的系统管理实践。

    linux-笔记

    - **虚拟机**: 使用虚拟机软件(如Vmware或VirtualBox)实现“傻瓜式”安装,步骤包括启动虚拟机软件、创建虚拟机、选择操作系统类型、指定镜像文件、设置用户名和密码、配置存储空间等。 - **步骤详解**: 1. 启动...

    Linux操作系统安全

    Linux 操作系统安全是指保护 Linux 操作系统免受未经授权的访问、使用、披露、修改或破坏的安全措施。 Linux 操作系统安全知识体系涵盖了账户安全、文件系统安全、访问控制、日志审计、网络安全等多个方面。 账户...

    Linux网络安全技术.pdf

    设定登录密码是一项非常重要的安全措施,如果用户密码设定的不合适,就很容易被破译,尤其是拥有超级用户使用权限的用户,如果没有良好的密码,将给系统造成很大的安全漏洞。 1.2 设定用户账号的安全等级 在 Linux...

    linux试卷.pdf

    10. 如果想在 Windows 系统下使用 Linux,可以把 Linux 安装在虚拟机上。 解释:可以在虚拟机上安装 Linux,以便在 Windows 系统下使用 Linux。 三、判断 1. Ubuntu LINUX 安装时自动创建了根用户。(√) 解释:...

    Linux常用命令介绍

    在了解Linux的基本概念后,接下来将详细介绍如何登录Linux系统以及一些基本的系统管理命令。 - **登录Linux系统**:要进入Linux系统,需要通过命令行界面输入用户的账户名和密码。 - **超级用户(root)**:拥有最高...

    (完整版)《Linux操作系统及应用项目教程》习题答案.pdf

    根据这些片段,我们可以详细梳理出与Linux操作系统相关的知识点。 1. Linux内核:Linux操作系统的核心部分,负责管理CPU、内存、磁盘等硬件资源,并提供系统服务和管理网络通信等。 2. GNU和Unix:GNU是一个广泛...

    Linux从入门到精通学习文档

    ### Linux从入门到精通学习文档知识点汇总 #### 一、Linux入门篇 ...- **Kickstart自动化安装平台**: 实现Linux系统的批量安装。 以上内容仅为该文档的部分知识点总结,更多详细内容请参考原文档。

    远程 linux 命令工具

    本文将围绕标题“远程Linux命令工具”展开,主要关注如何使用Putty这个流行的远程连接工具,以及通过它来执行Linux命令,实现远程管理。 首先,Putty是一款轻量级且免费的SSH客户端,它支持多种网络协议,如SSH、...

    Linux新手系统管理原指南.pdf

    - 相比之下,Linux的TCO通常更低,因为它是免费的,并且由于其高度的安全性和稳定性,减少了维护成本和停机时间。 - **1.16 Linux只是一个理想的梦** - Linux不仅是一个理想主义者的梦想,它已经在实际应用中证明...

    十分钟搭建超级强大的Linux邮件服务器.doc

    根据给定文件的信息,本文将围绕“十分钟搭建超级强大的Linux邮件服务器”这一主题展开详细的讨论。主要内容包括:邮件服务器的基本概念、为什么要选择Linux作为邮件服务器的操作系统、搭建Linux邮件服务器所需的...

    Linux必学的60个命令(5)-网络安全

    Linux 命令 - 网络安全 Linux 作为一个多用户的操作系统,需要管理员具备一定的安全意识和技术来保护系统的安全。...这些命令可以帮助管理员实现 Linux 系统的安全,保护系统免受非法入侵和攻击。

    目前最详细破解HG8245免拨号、开路由、开WIFI(绝对原创)-6月13日版.docx

    本文将详细阐述如何破解 HG8245 光猫,实现免拨号上网、开启路由功能以及启用Wi-Fi。 首先,你需要了解 HG8245 的默认登录信息。默认情况下,Web管理界面的用户名是 `telecomadmin`,密码是 `nE7jA%5m`。部分运营商...

    linux用户基础和常用命令配置文件

    补全功能可以通过按下Tab键实现,也可以使用其他快捷键,如\M-\#注释当前命令,\M-!补全子命令,\M-@补全主机名,\M-$补全变量等。这些技巧极大地简化了命令行操作。 此外,Linux的主要配置文件也是必须了解的部分...

    Hadoop伪分布模式环境搭建[超详细]

    在Hadoop集群环境中,主节点需要访问从节点,因此需要使用SSH协议来实现免密码登录。 二、生成SSH密钥对 在主节点上生成SSH密钥对,使用以下命令: ``` ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa ``` 这将生成一...

Global site tag (gtag.js) - Google Analytics