这个文章主要写的是通过 ssh 方式远程无密码访问,使用RSA的公钥。两个机器 的操作系统 都为centos6.5_64
机器
|
机器hadoop0
|
----去访问---->
|
机器hadoop1
|
用户名
|
test0
|
|
test1 (说明两个用户都不是root组的用户)
|
ip
|
192.168.100.114
|
|
192.168.100.149
|
主机名
|
hadoop0
|
|
hadoop1 (说明: 修改主机名:vim /etc/sysconfig/network)
|
hosts
(
/etc/hosts
)
|
192.168.100.114 hadoop0
192.168.100.149 hadoop1
|
|
192.168.100.114 hadoop0
192.168.100.149 hadoop1
|
|
|
|
|
一. 机器hadoop0 生成 rsa的key
用户:test0
1. 在目录 /home/test0下 执行命令
ssh-keygen -t rsa , 执行命令过程中会有三次输入,都直接铵回车Enter键便可,
然后会在 .ssh 隐藏目录下生 id_rsa 和 id_rsa.pub 两个文件,即私钥和公钥文件
2. 复制公钥文件 id_rsa.pub内容到一个新文件 authorized_keys文件中
cp id_rsa.pub authorized_keys
二. 机器hadoop1
1. 在root用户下,修改 vim /etc/ssh/sshd_config 文件,找到
Port 22 (去掉前面的#)
RSAAuthentication yes (去掉前面的#) 允许rsa 验证
PubkeyAuthentication yes (去掉前面的#) 允许公钥验证
AuthorizedKeysFile .ssh/authorized_keys (去掉前面的#) 验证key文件位置
2.重启ssh,在root用户下
执行
service sshd restart 或者 /etc/init.d/sshd restart
3. 在用户test1下,进入文件夹/home/test1下面,创建隐藏文件夹 .ssh
三. 机器hadoop0
用户: test0
1.把文件 /home/test0/.ssh/authorized_keys 复制到 机器hadoop1的/home/test1/.ssh/ 目录下面
执行 cd ~ , 进入/home/hxd目录下
执行
scp .ssh/authorized_keys root@192.168.100.149:/home/test1/.ssh/ 执行过程中会有进度提示
说明:
要能root用户名方式操作机器hadoop1
复制前会提示输入密码,请输入
有时在同一台机器会有这种需求,把一个文件bb.txt 中的内容追加到aa.txt文件中,
则执行 cat bb.txt >> aa.txt
有人说到要把 机器hadoop1的/home/test1/.ssh/authorized_keys 文件,要修改成用户test1的对应权限 600,可以先查看下,其实它复制过去时已经拥有了这个权限
2. 成功复制文件到机器hadoop1后
尝连接到 机器hadoop1
测试
ssh -v test1@hadoop1
执行测试命令过程中会提示以test1登录机器hadoop1的密码,则请输入。
3. 正式连接
ssh test1@hadoop1
提示:
不用再输入密码成功完成