呃,今天看 真实的归宿 前辈的《Hadoop集群配置》,其中的第二步“安装ssh和配置”,彻底把我给搞蒙了,写的真心乱,而且里面的步骤好多是不需要的,建议先了解一下ssh的实现原理。这里我把原理解释一下,然后给出一个简明的配置过程。
实现原理:
使用一种被称为"公私钥"认证的方式来进行ssh登录. "公私钥"认证方式简单的解释是
首先在客户端上创建一对公私钥 (公钥文件:~/.ssh/id_rsa.pub; 私钥文件:~/.ssh/id_rsa)
然后把公钥放到服务器上(~/.ssh/authorized_keys), 自己保留好私钥
当ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配.如果匹配成功就可以登录了
配置过程:
(首先配置/etc/hosts文件,ip以我的两台虚拟机为例,添加192.168.56.101 node0,192.168.56.102 node1)
(假设已经配置好/etc/hosts文件,现在node0代表master,node1代表slave,其它slave同理,暂时先以这两个做示范,用户名均是hadoop,你要先搞清楚状况,现在master相当于上述原理中的客户端,slave相当于服务器,即现在是master(node0)想要登录到slave(node1)上)
1、安装:sudo apt-get install ssh
这个安装完后,可以直接使用ssh命令 了。
执行$ netstat -nat 查看22端口是否开启了。
测试:ssh localhost。
输入当前用户的密码,回车就ok了。说明安装成功,同时ssh登录需要密码。
(这种默认安装方式完后,默认配置文件是在/etc/ssh/目录下。sshd配置文件是:/etc/ssh/sshd_config):
注意:在所有机子都需要安装ssh。
2、在node0上执行 ssh-keygen -t rsa
(注:每次执行 ssh-keygen -t rsa 产生的私钥文件都会不同)
a)如果文件"~/.ssh/id_rsa"存在,会提示是否覆盖该文件,此时可选择"n"不覆盖该文件而使用已有的id_rsa文件;如果选择"y"则会重新生成"~/.ssh/id_rsa"文件,接下来会提示输入passphrase,回车确定使用空的passphrase,再次回车确认(这里也可以输出passphrase,相当于ssh时登录的密码)。然后会重新生成"~/.ssh/id_rsa"文件和"~/.ssh/id_rsa.pub"文件。
b)如果"~/.ssh/id_rsa"文件和"~/.ssh/id_rsa.pub"文件不存在则会自动创建新的"~/.ssh/id_rsa"文件和"~/.ssh/id_rsa.pub"文件,passphrase设置同上。
(注:第一次安装,当然是第二种情况咯!)
3、现在要做的就是把公钥放到node1上了
a)如果node1上已经存在"~/.ssh/authorized_keys"文件,那么需要使用ssh hadoop@node1登录到服务器,编辑服务器上"~/.ssh/authorized_keys"文件,将客户端机器上的"~/.ssh/id_rsa.pub"文件内容追加到"~/.ssh/authorized_keys"文件中。
(注:可以在客户端机器上使用以下命令来实现: cat ~/.ssh/id_rsa.pub | ssh hadoop@node1 "cat - >> ~/.ssh/authorized_keys")
(此时会要求输入hadoop在服务器上的登录密码,输入后即会将客户端机器上的"~/.ssh/id_rsa.pub"文件内容追加到服务器上的"~/.ssh/authorized_keys"文件中)
b)如果服务器上没有"~/.ssh/authorized_keys"文件,那么首先在客户端上执行 cp id_rsa.pub authorized_keys (即将公钥复制为authorized_keys文件,准备再将此文件直接复制到服务器上),然后在服务器上建立目录~/.ssh/,最后将authorized_keys从客户端复制到服务器,在node0执行下面这条命令
scp authorized_keys node1:/home/hadoop/.ssh/
会提示你是否连接,输入yes,然后会提示你输入hadoop@node1‘s password,输入密码。
(注:第一次安装,也是第二种情况!)
4、ok,完成咯!下面登录,在node0上执行
ssh node1
会直接登入到node1哦!不用输入密码啦!退出的话就 exit
呃,相信你懂了原理以后,之间出的小状况你也一定可以解决的,祝你成功啦~
(另外,下面是有密码登录的情况,我自己做下笔记,你可以无视,呵呵~)
如果设置了passphrase,则此时需要输入该passphrase登录服务器。此时前面我们把输入密码变成了输入passphrase,这没有带来任何方便。但是我们可以通过ssh-agent来帮助我们自动输入passphrase(只是看起来像是自动输入而已),我们只要在第一次登录时输入一次passphrase, 以后的工作就可以交给ssh-agent。在客户端机器上执行命令ssh-add,这里会提示输入一次passphrase。输入第一步中设置的passphrase之后会修改"~/.ssh/id_rsa"文件。再在客户端执行"ssh hadoop@node1"即可无密码登录到服务器端。
相关推荐
Linux 下设置 SSH 无密码登录 Linux 是一个流行的开源操作系统...通过生成 SSH 密钥对,配置 `authorized_keys` 文件,并将其拷贝到远程主机,可以实现无密码登录。同时,需要注意防火墙和权限的设置,以确保安全性。
公钥/私钥认证机制是SSH实现无密码登录的基础。该机制的基本流程如下: 1. **生成密钥对**:在客户端生成一对密钥,一个为私钥,一个为公钥。 2. **分发公钥**:将公钥发送到需要登录的服务器上。 3. **验证过程**...
配置linux ssh免密码登录,第一行生成密钥,第二行是要对哪台机器免密码ssh登录就配置成哪一台,这里root@hadoop00,root是用户名,hadoop00是主机名
Postgres用户下SSH无密码登录 SSH(Secure Shell)是一种...通过修改SSH配置文件、生成公钥和私钥、将公钥添加到authorized_keys文件和重启SSH服务,可以实现无密码登录。这种方法可以提高服务器管理的效率和安全性。
如果按照上述步骤操作后仍然无法实现无密码登录,可能是因为SElinux(Security-Enhanced Linux)的安全策略限制了SSH的行为。SElinux是Linux内核的一个模块,提供强制访问控制(MAC)。可以暂时关闭SElinux以测试,...
### Linux SSH配置与安全增强详解 #### 一、概述 SSH(Secure Shell)是一种网络协议,用于计算机之间的加密登录和命令执行,以及数据传输。它能够有效防止远程管理过程中的信息泄露、身份替换等攻击。在Linux系统...
你可以按提示设置密码,但为了实现无密码登录,保持空密码即可,连续回车3次。 2. **复制公钥到主机B**: 使用`scp`命令将主机A上的公钥`id_rsa.pub`复制到主机B的`.ssh`目录下,假设主机B的用户名是`username`,...
### Linux系统的SSH免密码登录机制原理及实现范例 #### 一、SSH免密码登录机制原理 SSH(Secure Shell)是一种网络协议,用于计算机之间的加密登录。它可以在不安全的网络上提供一种安全的远程登录方法。对于经常...
通过以上步骤,我们可以确保 Linux SSH 客户端配置正确,从而实现安全、高效的远程连接管理。 #### 3.3 服务端配置 服务端配置主要涉及 `/etc/ssh/sshd_config` 文件的修改。这个文件包含了 SSH 服务端的各种配置...
Linux SSH 配置和禁止 Root 远程登陆设置 ...本文档详细介绍了 Linux SSH 配置和禁止 Root 远程登陆设置的步骤和方法,通过修改 SSH 服务器的配置文件和生成公钥与私钥,可以实现 SSH 服务器的安全配置。
在Linux系统中,SSH无密码登录可以提高自动化运维的效率,避免每次连接时输入密码的繁琐步骤。以下是实现SSH无密码登录的详细步骤: 1. **生成密钥对**: 首先,在需要进行无密码登录的主机上,运行`ssh-keygen -t...
现在,你可以使用转换后的私钥在PuTTY中连接到Linux服务器,实现无密码登录。 ### 4. 注意事项 - `StrictModes`设置为`no`会关闭SSH对用户目录和文件权限的严格检查,但出于安全考虑,通常建议保持为`yes`。 - ...
Linux SSH 配置和禁止 Root 远程登录设置 Linux SSH 配置和禁止 Root 远程登录设置是 Linux 系统中的一项重要的安全设置。通过本文档,我们将了解如何配置 SSH 服务器,禁止 Root 用户远程登录,提高 Linux 系统的...
3. **无密码登录实现**:要取消密码验证,我们需要修改VNC服务器的源代码,或者使用其他手段绕过密码检查。这通常涉及到对身份验证过程的调整,可能包括禁用密码检查或使用特定的认证插件。 4. **安全性考虑**:无...
linux环境下expecct脚本自动配置ssh无密码登陆
Linux系统SSH无密码登录设置手册 1. 引言 ...总结,通过理解SSH的工作原理并按照上述步骤配置,可以实现Linux系统之间的安全无密码登录。在享受便利的同时,不要忘记加强安全措施,防止未经授权的访问。
2. 限制SSH登录方式:可以通过配置禁止密码登录,只允许公钥认证,提高安全性。 3. 使用防火墙规则:设置iptables或ufw防火墙规则,限制特定IP或端口的访问。 4. 安装并更新SSH守护进程:保持sshd的最新状态,以抵御...
标题“Java Linux SSH登录”指的是使用Java编程语言与Linux操作系统进行安全外壳(SSH)通信的过程。在描述中提到,这个过程通常涉及建立一个通道并执行单个命令。这里,我们将会详细探讨Java如何通过SSH连接到Linux...
通过以上内容的详细介绍,相信读者已经掌握了如何配置SSH Key实现免密码登录的过程及其背后的基本原理。这种方式对于自动化运维、批量部署等场景非常有用,有助于提高工作效率的同时保障系统的安全性。