`
kfcman
  • 浏览: 395592 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

linux的ssh配置实现无密码登录

 
阅读更多

呃,今天看 真实的归宿 前辈的《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无密码登录.docx

    Linux 下设置 SSH 无密码登录 Linux 是一个流行的开源操作系统...通过生成 SSH 密钥对,配置 `authorized_keys` 文件,并将其拷贝到远程主机,可以实现无密码登录。同时,需要注意防火墙和权限的设置,以确保安全性。

    Linux配置ssh免密码登录

    公钥/私钥认证机制是SSH实现无密码登录的基础。该机制的基本流程如下: 1. **生成密钥对**:在客户端生成一对密钥,一个为私钥,一个为公钥。 2. **分发公钥**:将公钥发送到需要登录的服务器上。 3. **验证过程**...

    配置linux ssh免密码登录

    配置linux ssh免密码登录,第一行生成密钥,第二行是要对哪台机器免密码ssh登录就配置成哪一台,这里root@hadoop00,root是用户名,hadoop00是主机名

    postgres用户下ssh无密码登录

    Postgres用户下SSH无密码登录 SSH(Secure Shell)是一种...通过修改SSH配置文件、生成公钥和私钥、将公钥添加到authorized_keys文件和重启SSH服务,可以实现无密码登录。这种方法可以提高服务器管理的效率和安全性。

    Linux系统SSH无密码登录配置

    如果按照上述步骤操作后仍然无法实现无密码登录,可能是因为SElinux(Security-Enhanced Linux)的安全策略限制了SSH的行为。SElinux是Linux内核的一个模块,提供强制访问控制(MAC)。可以暂时关闭SElinux以测试,...

    Linux_SSH配置和禁止Root远程登陆设置文档

    ### Linux SSH配置与安全增强详解 #### 一、概述 SSH(Secure Shell)是一种网络协议,用于计算机之间的加密登录和命令执行,以及数据传输。它能够有效防止远程管理过程中的信息泄露、身份替换等攻击。在Linux系统...

    ssh如何配置无密码远程登录1

    你可以按提示设置密码,但为了实现无密码登录,保持空密码即可,连续回车3次。 2. **复制公钥到主机B**: 使用`scp`命令将主机A上的公钥`id_rsa.pub`复制到主机B的`.ssh`目录下,假设主机B的用户名是`username`,...

    linux系统的ssh免密码登录机制原理及实现范例

    ### Linux系统的SSH免密码登录机制原理及实现范例 #### 一、SSH免密码登录机制原理 SSH(Secure Shell)是一种网络协议,用于计算机之间的加密登录。它可以在不安全的网络上提供一种安全的远程登录方法。对于经常...

    linux ssh的配置

    通过以上步骤,我们可以确保 Linux SSH 客户端配置正确,从而实现安全、高效的远程连接管理。 #### 3.3 服务端配置 服务端配置主要涉及 `/etc/ssh/sshd_config` 文件的修改。这个文件包含了 SSH 服务端的各种配置...

    Linux SSH配置和禁止Root远程登陆设置文档.pdf

    Linux SSH 配置和禁止 Root 远程登陆设置 ...本文档详细介绍了 Linux SSH 配置和禁止 Root 远程登陆设置的步骤和方法,通过修改 SSH 服务器的配置文件和生成公钥与私钥,可以实现 SSH 服务器的安全配置。

    linuxssh无密码登陆

    在Linux系统中,SSH无密码登录可以提高自动化运维的效率,避免每次连接时输入密码的繁琐步骤。以下是实现SSH无密码登录的详细步骤: 1. **生成密钥对**: 首先,在需要进行无密码登录的主机上,运行`ssh-keygen -t...

    Linux SSH配置和禁止Root远程登陆设置文档之欧阳术创编.docx

    现在,你可以使用转换后的私钥在PuTTY中连接到Linux服务器,实现无密码登录。 ### 4. 注意事项 - `StrictModes`设置为`no`会关闭SSH对用户目录和文件权限的严格检查,但出于安全考虑,通常建议保持为`yes`。 - ...

    Linux SSH配置和禁止Root远程登陆设置文档(技术学习).docx

    Linux SSH 配置和禁止 Root 远程登录设置 Linux SSH 配置和禁止 Root 远程登录设置是 Linux 系统中的一项重要的安全设置。通过本文档,我们将了解如何配置 SSH 服务器,禁止 Root 用户远程登录,提高 Linux 系统的...

    linux实现vnc无密码登录

    3. **无密码登录实现**:要取消密码验证,我们需要修改VNC服务器的源代码,或者使用其他手段绕过密码检查。这通常涉及到对身份验证过程的调整,可能包括禁用密码检查或使用特定的认证插件。 4. **安全性考虑**:无...

    expecct自动配置ssh无密码登陆

    linux环境下expecct脚本自动配置ssh无密码登陆

    Linux系统ssh无密码登录设置手册.docx

    Linux系统SSH无密码登录设置手册 1. 引言 ...总结,通过理解SSH的工作原理并按照上述步骤配置,可以实现Linux系统之间的安全无密码登录。在享受便利的同时,不要忘记加强安全措施,防止未经授权的访问。

    linux ssh ssh

    2. 限制SSH登录方式:可以通过配置禁止密码登录,只允许公钥认证,提高安全性。 3. 使用防火墙规则:设置iptables或ufw防火墙规则,限制特定IP或端口的访问。 4. 安装并更新SSH守护进程:保持sshd的最新状态,以抵御...

    java linux ssh登陆

    标题“Java Linux SSH登录”指的是使用Java编程语言与Linux操作系统进行安全外壳(SSH)通信的过程。在描述中提到,这个过程通常涉及建立一个通道并执行单个命令。这里,我们将会详细探讨Java如何通过SSH连接到Linux...

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

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

Global site tag (gtag.js) - Google Analytics