`

配置SSH使用无密码公钥认证的方式

阅读更多

以本文中的三台机器为例,现在dbrg-1是主节点,它需要主动发起SSH连接到dbrg-2 和dbrg-3,对于SSH服务来说,dbrg-1就是SSH客户端,而dbrg-2、dbrg-3则是SSH服务端,因此在dbrg-2,dbrg-3 上需要确定sshd服务已经启动。简单的说,在dbrg-1上需要生成一个密钥对,即一个私钥,一个公钥。将公钥拷贝到dbrg-2,dbrg-3上,这 样,比如当dbrg-1向dbrg-2发起ssh连接的时候,dbrg-2上就会生成一个随机数并用dbrg-1的公钥对这个随机数进行加密,并发送给 dbrg-1;dbrg-1收到这个加密的数以后用私钥进行解密,并将解密后的数发送回dbrg-2,dbrg-2确认解密的数无误后就允许dbrg-1 进行连接了。这就完成了一次公钥认证过程。

对于本文中的三台机器,首先在dbrg-1上生成密钥对:
[dbrg@dbrg-1:~]$ssh-keygen -t rsa
这 个命令将为dbrg-1上的用户dbrg生成其密钥对,询问其保存路径时直接回车采用默认路径,当提示要为生成的密钥输入passphrase的时候,直 接回车,也就是将其设定为空密码。生成的密钥对id_rsa,id_rsa.pub,默认存储在/home/dbrg/.ssh目录下。然后将 id_rsa.pub的内容复制到每个机器(也包括本机)的/home/dbrg/.ssh/authorized_keys文件中,如果机器上已经有 authorized_keys这个文件了,就在文件末尾加上id_rsa.pub中的内容,如果没有authorized_keys这个文件,直接cp 或者scp就好了,下面的操作假设各个机器上都没有authorized_keys文件。

对于dbrg-1
[dbrg@dbrg-1:.ssh]$cp id_rsa.pub authorized_keys

对于dbrg-2(dbrg-3同dbrg-2的方法)
[dbrg@dbrg-2:~]$mkdir .ssh
[dbrg@dbrg-1:.ssh]$scp authorized_keys dbrg-2:/home/dbrg/.ssh/
此处的scp就是通过ssh进行远程copy,此处需要输入远程主机的密码,即dbrg-2机器上dbrg帐户的密码,当然,你也可以用其他方法将authorized_keys文件拷贝到其他机器上

[dbrg@dbrg-2:.ssh]$chmod 644 authorized_keys
这一步非常关键,必须保证authorized_keys只对其所有者有读写权限,其他人不允许有写的权限,否则SSH是不会工作的。我就曾经在配置SSH的时候郁闷了好久。

[dbrg@dbrg-2:.ssh]ls -la
drwx------ 2 dbrg dbrg .
drwx------ 3 dbrg dbrg ..
-rw-r--r-- 1 dbrg dbrg authorized_keys
注意每个机器上的.ssh目录的ls -la都应该和上面是一样的

接着,在三台机器上都需要对sshd服务进行配置(其实是可以不用配置的,完成了上面的那些操作了以后SSH就已经可以工作了),在三台机器上修改文件/etc/ssh/sshd_config
#去除密码认证
PasswordAuthentication no
AuthorizedKeyFile .ssh/authorized_keys

至此各个机器上的SSH配置已经完成,可以测试一下了,比如dbrg-1向dbrg-2发起ssh连接
[dbrg@dbrg-1:~]$ssh dbrg-2
如果ssh配置好了,就会出现以下提示信息
The authenticity of host [dbrg-2] can't be established.
Key fingerprint is 1024 5f:a0:0b:65:d3:82:df:ab:44:62:6d:98:9c:fe:e9:52.
Are you sure you want to continue connecting (yes/no)?
OpenSSH告诉你它不知道这台主机,但是你不用担心这个问题,因为你是第一次登录这台主机。键入“yes”。这将把这台主机的“识别标记”加到“~/.ssh/know_hosts”文件中。第二次访问这台主机的时候就不会再显示这条提示信息了。
然后你会发现不需要输入密码就可以建立ssh连接了,恭喜你,配置成功了
不过,别忘了测试本机ssh dbrg-1

分享到:
评论

相关推荐

    SSH无密码登录配置(主要针对Hadoop配置)

    在无密码登录中,我们通常采用后者,通过公钥/私钥对进行认证,无需每次都输入密码。 **二、生成密钥对** 首先,我们需要在客户端生成一对密钥,这可以通过`ssh-keygen`命令完成。执行以下命令,生成默认的2048位...

    postgres用户下ssh无密码登录

    这些配置将启用RSA认证和公钥认证,并将authorized_keys文件设置为.ssh/authorized_keys。 二、生成公钥和私钥 使用ssh-keygen命令生成公钥和私钥: ssh-keygen -t rsa 这将生成一对公钥和私钥,分别存储在 ~/....

    ssh配置公钥和私钥登陆SecureCRT[整理].pdf

    SecureCRT 是一种流行的 SSH 客户端软件,支持多种身份验证方式,包括密码认证和公钥认证。在本文中,我们将详细介绍如何使用 SecureCRT 配置公钥和私钥登录 Linux 服务器。 公钥认证的优点 相比密码认证,公钥...

    Linux配置ssh免密码登录

    这种方式通过使用SSH (Secure Shell) 的公钥/私钥认证机制来实现,即无需每次登录时输入密码即可完成身份验证的过程。本文将详细介绍如何在CentOS环境下配置SSH的无密码登录,并解决在配置过程中可能遇到的一些常见...

    在juniper路油器上配置ssh  

    - 除了使用SSH密钥认证外,还可以结合使用密码认证来增加额外的安全层。 - 定期审核SSH日志,监控异常登录尝试,这对于及时发现安全威胁至关重要。 - 考虑使用防火墙规则来进一步限制对SSH服务的访问,例如只允许...

    Go-sshkeys-获取ssh服务器的所有ssh公钥

    在分布式系统管理中,使用SSH公钥认证可以避免频繁输入密码,提高工作效率,同时也能降低因密码泄露带来的风险。这个Go程序可能通过SSH协议连接到服务器,然后读取`~/.ssh/authorized_keys`文件来获取存储的公钥信息...

    配置 SSH 服务以使用证书登录 Linux 服务器.docx

    * 认证方式:使用公钥认证,禁止密码认证。 * 访问安全:禁用密码登录方式,启用公钥认证。 三、authorized_keys 文件设置 authorized_keys 文件用于存储公钥,以便 SSH 服务器验证客户端身份。配置 authorized_...

    Linux免密登入 使用公钥+私钥:MobaXterm设置无密码登录

    ### Linux免密登录详解:利用MobaXterm实现公钥+私钥认证 #### 一、密钥对的概念 在介绍如何使用MobaXterm进行免密登录之前,首先需要理解密钥对的基本概念。密钥对是由一对公钥和私钥组成的,它们在数字加密领域...

    centos7ssh免密无坑全分析配置

    在配置SSH免密登录时可能会遇到各种问题,常见的问题及解决方法包括: 1. 确保文件权限设置正确。~/.ssh目录权限应该是700,而authorized_keys文件的权限应该是600。这可以通过`chmod`命令实现。 2. 确认.ssh目录和...

    SSH 零配置例子

    零配置SSH指的是简化SSH连接过程,使得用户无需手动配置公钥认证或记住复杂的密码,即可实现快速、安全的登录。这个压缩包文件"sshProject"很可能包含了一个示例项目,用于演示如何设置和使用SSH的零配置功能。 SSH...

    dropbear实现免密码ssh登录方法

    - **免密码登录**:通过事先设置好的公钥-私钥对来认证用户身份,从而实现无需手动输入密码即可完成SSH登录的过程。 #### 三、实现步骤 1. **准备环境**:确保客户端和服务端均已安装Dropbear。 2. **清除原有配置*...

    H3C交换机SSH配置完全攻略

    3. 创建用户并指定认证方式为公钥认证:使用命令`local-user luwenju-juzi`和`password cipher luwenju-!@#`创建用户,并指定认证方式为公钥认证。 4. 客户端生成公钥和私钥,并将公钥上传到FTP服务器:使用puttygen...

    H3C华三开启SSH配置登录

    - **认证方式多样化**:除了密码认证外,还可以采用公钥认证等方式提高安全性。 - **SSH版本升级**:随着技术的发展,SSH版本也在不断更新,升级到最新的SSH版本可以获得更好的性能和更强大的功能。

    LinuxSSH使用ssh公钥密钥自动登陆linux服务器收集.pdf

    Linux SSH 使用ssh公钥密钥自动登录Linux服务器是一种常见的安全远程访问方法,它避免了每次登录时手动输入用户名和密码的繁琐过程。这种方法基于非对称加密,通过一对密钥——公钥和私钥——来确保只有拥有相应私钥...

    WINSCP-SFTP SSH免密码登录

    **描述解析:** "WINSCP 可创建密钥交互SSH免密码登录" 表示WINSCP支持配置SSH密钥对,通过公钥认证的方式,使得用户在每次连接SFTP服务器时,不再需要手动输入私钥对应的密码,提高工作效率并增强安全性。...

    中兴 ZXV10 W815N telnet SSH密码

    SSH(Secure Shell)是一种更为安全的远程登录协议,它不仅提供了加密的数据传输通道,还支持多种身份验证方式,如密码认证、公钥认证等。相比于Telnet,SSH更加安全可靠,是现代网络管理中的首选远程登录方式。 ##...

    虚拟机VMware下centos配置SSH免密码登陆

    当本地机器尝试连接远程服务器时,如果服务器发现本地机器的私钥匹配其保存的公钥,就会允许无密码登录。 具体步骤如下: 1. **创建用户**:在两个CentOS虚拟机`centos01`和`centos02`上,创建相同的用户,例如名...

    详解SSH如何配置key免密码登录

    通过以上内容的详细介绍,相信读者已经掌握了如何配置SSH Key实现免密码登录的过程及其背后的基本原理。这种方式对于自动化运维、批量部署等场景非常有用,有助于提高工作效率的同时保障系统的安全性。

    ssh通讯协议及ssh免密码登录的配置

    本文将介绍 SSH 远程安全登录的工作原理、免密码登录的配置、scp 远程拷贝命令的使用等。 一、SSH 远程安全登录的工作原理 SSH 远程安全登录的工作原理基于口令。客户端发起远程登录请求,服务端接收请求,将自己...

Global site tag (gtag.js) - Google Analytics