linux ssh-keygen无密码登录

本文详细介绍如何在Hadoop集群中进行SSH免密配置,包括master节点和slave节点的具体操作步骤,确保集群内部各节点间可以实现无密码验证的SSH连接。

先确保ssh安装了,master和slave都添加了hadoop用户

第一步,master:

$ ssh-keygen -t dsa -P '' -f /home/hadoop/.ssh/id_dsa

$ cd .ssh/

$ cat id_dsa.pub  >> authorized_keys

$ chmod 600 .ssh/authorized_keys 

$ ssh master

 

第二步,slave:

$ mkdir /home/hadoop/.ssh

$ chmod 700 .ssh

 

第三步,master:

$ scp .ssh/id_dsa.pub hadoop@slave:/home/hadoop/.ssh/

 

第四步,slave:

$ cd .ssh/

$ cat id_dsa.pub >> authorized_keys

$ chmod 600 authorized_keys 

 

第五步,master:

$ ssh slave

 

 

master log:

 

[hadoop@master ~]$ ssh-keygen -t dsa -P '' -f /home/hadoop/.ssh/id_dsa

Generating public/private dsa key pair.

Created directory '/home/hadoop/.ssh'.

Your identification has been saved in /home/hadoop/.ssh/id_dsa.

Your public key has been saved in /home/hadoop/.ssh/id_dsa.pub.

The key fingerprint is:

1c:96:85:88:c2:c5:39:6a:9b:f9:1b:ee:74:da:ff:c5 hadoop@master.hadoop

[hadoop@master ~]$ cd .ssh/

[hadoop@master .ssh]$ ls

id_dsa  id_dsa.pub

[hadoop@master .ssh]$ cat id_dsa.pub  >> authorized_keys

[hadoop@master .ssh]$ ll

total 24

-rw-rw-r-- 1 hadoop hadoop 610 Aug 22 02:54 authorized_keys

-rw------- 1 hadoop hadoop 668 Aug 22 02:53 id_dsa

-rw-r--r-- 1 hadoop hadoop 610 Aug 22 02:53 id_dsa.pub

[hadoop@master .ssh]$ ssh master

The authenticity of host 'master (192.168.2.128)' can't be established.

RSA key fingerprint is 9f:82:3d:8e:ee:00:a4:9e:3f:95:7d:47:2a:2f:d5:0b.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added 'master,192.168.2.128' (RSA) to the list of known hosts.

hadoop@master's password: 

Last login: Thu Aug 22 02:50:22 2013 from slave

[hadoop@master ~]$ ssh master

hadoop@master's password: 

Last login: Thu Aug 22 02:54:45 2013 from master

[hadoop@master ~]$ chmod 600 .ssh/authorized_keys 

[hadoop@master ~]$ ssh master

Last login: Thu Aug 22 02:55:05 2013 from master

 

执行下面的slave log,再接着执行

 

[hadoop@master ~]$ scp .ssh/id_dsa.pub hadoop@slave:/home/hadoop/.ssh/

The authenticity of host 'slave (192.168.2.130)' can't be established.

RSA key fingerprint is 4e:6f:2f:00:99:2f:5a:c4:2a:b3:b8:8f:76:e8:ce:47.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added 'slave,192.168.2.130' (RSA) to the list of known hosts.

hadoop@slave's password: 

id_dsa.pub                                    100%  610     0.6KB/s   00:00    

[hadoop@master ~]$ ssh slave

Last login: Thu Aug 22 02:50:31 2013 from master

 

 

slave log:

 

[hadoop@slave ~]$ mkdir /home/hadoop/.ssh

[hadoop@slave ~]$ chmod 700 .ssh

[hadoop@slave ~]$ ll

total 0

[hadoop@slave ~]$ ll

total 0

[hadoop@slave ~]$ cd .ssh/

[hadoop@slave .ssh]$ ll

total 8

-rw-r--r-- 1 hadoop hadoop 610 Aug 22 02:59 id_dsa.pub

[hadoop@slave .ssh]$ cat id_dsa.pub >> authorized_keys

[hadoop@slave .ssh]$ ll

total 16

-rw-rw-r-- 1 hadoop hadoop 610 Aug 22 03:00 authorized_keys

-rw-r--r-- 1 hadoop hadoop 610 Aug 22 02:59 id_dsa.pub

[hadoop@slave .ssh]$ chmod 600 authorized_keys 

[hadoop@slave .ssh]$ ll

total 16

-rw------- 1 hadoop hadoop 610 Aug 22 03:00 authorized_keys

-rw-r--r-- 1 hadoop hadoop 610 Aug 22 02:59 id_dsa.pub

 

### 生成SSH密钥对 使用 `ssh-keygen` 命令可以生成SSH密钥对,用于实现安全的身份验证和免密登录。基本命令如下: ```bash ssh-keygen ``` 执行此命令后,会提示设置密钥文件名和路径。默认情况下,密钥将保存在当前用户的 `.ssh` 目录中,文件名以 `id_rsa` 开头。如果希望使用默认路径和文件名,可以直接按回车键确认[^3]。 ### 指定密钥类型和长度 可以通过 `-t` 参数指定密钥类型,例如 RSA、ECDSA 或 Ed25519。RSA 是默认类型,但为了更高的安全性,可以选择 4096 位的密钥长度。命令如下: ```bash ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` 此命令生成的密钥使用 RSA 算法,密钥长度为 4096 位,并添加了注释信息(通常为邮箱地址),便于识别[^2]。 ### 指定密钥保存路径 使用 `-f` 参数可以指定生成密钥的保存路径和文件名。如果不指定,密钥将默认保存在 `~/.ssh/` 目录下,文件名以 `id_rsa` 开头。例如: ```bash ssh-keygen -f ~/.ssh/my_key ``` 此命令会将密钥保存为 `~/.ssh/my_key`,并提示输入文件名和密码。 ### 添加注释信息 通过 `-C` 参数可以添加注释信息,通常用于标识密钥的用途或所有者。例如: ```bash ssh-keygen -C "your_email@example.com" ``` 生成的公钥文件末尾会显示此注释信息,有助于管理和识别多个密钥[^3]。 ### 设置密钥密码 使用 `-N` 参数可以为密钥对设置密码。如果指定此参数,命令执行过程中不会出现交互输入密码的提示。例如: ```bash ssh-keygen -N "your_password" ``` 如果省略此参数,会提示输入密码和确认密码。如果不需要密码,直接按回车键即可。需要注意的是,如果设置了密码,每次使用密钥时都需要输入密码[^3]。 ### 示例:生成带注释的RSA密钥 以下命令生成一个带有注释信息的 RSA 密钥,密钥长度为 4096 位,并保存在默认路径下: ```bash ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` 执行过程中会提示输入文件名和密码,如果接受默认值和不设置密码,直接按回车键即可完成[^2]。 ### 管理SSH密钥对 生成密钥对后,私钥文件通常保存在本地,而公钥文件需要上传到目标服务器的 `~/.ssh/authorized_keys` 文件中,以实现免密登录。确保私钥文件的权限设置为 600,公钥文件的权限设置为 644,以保证安全性。 ```bash chmod 600 ~/.ssh/id_rsa chmod 644 ~/.ssh/id_rsa.pub ``` 这些命令设置私钥文件的权限为仅所有者可读写,公钥文件的权限为所有者可读写,其他用户只读。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值