1.进入 目录 (~/.ssh/)
cd ~/.ssh/
2.生成 key
ssh-keygen -t rsa
这是会在目录下产生 id_rsa id_rsa.pub
这两个文件
3. 将 密码文件 : id_rsa.pub 上传到 ssh 的服务器 上
ssh-copy-id -i ~/.ssh/id_rsa.pub 用户名@IP地址
eg:
ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.236.18
如果不成功 ,
1.确认 ssh到的机器上 ~/.ssh/ 目录下的文件 authorized_keys ,查看该文件是否有 自己刚刚添加的密文,如果没有再添加一遍,如果有 ,还不能登录,可能是自己生成密文是 出错了!
2.删除 ~/.ssh/ 与密文相关的文件,重新生成
如果登陆还是不成功:
因为linux 的权限认证很 严格
1.你可以让 linux 不检查 你的 文件权限 当然这样子是很危险的(非常不建议,但是在配置hadoop 的时时候 hdfs对这个目录的访问权限要求也非常严格,这时如果你修改了,还是比较起作用的 嘿嘿):
修改:
vi /etc/ssh/sshd_config
# StrictModes yes 修改为 StrictModes no
这时 你可以重新拷贝 秘钥到 服务器,登陆 如果还不成功 那就得看下 你的 selinux 参数了 :
关于 selinux 稍后我查完资料再补上 这个东东到底是干嘛的。先把这个弄好再说,
vi /etc/selinux/config
将 SELINUX 设置为: SELINUX=disabled
然后执行:
setenforce 0
在 ssh 链接服务器试试 。这时 应该是可以了,
如果报出 如下错误:
libin@libin-ThinkPad-T420:~$ ssh root@172.16.205.69
Agent admitted failure to sign using the key.
root@172.16.205.69's password:
这个时候说明 客户端和服务端 使用的key 可能不一致 的问题什么的(这个稍后 研究下 ssh-add 再做解答),
查了资料之后 需要 执行 以下命令
需要在客户端执行: ssh-add
libin@libin-ThinkPad-T420:~$ ssh-add
Identity added: /home/libin/.ssh/id_rsa (/home/libin/.ssh/id_rsa)
libin@libin-ThinkPad-T420:~$ ssh root@172.16.205.69
Last login: Mon Aug 12 15:32:55 2013 from 172.16.17.252
[root@localhost ~]#
O(∩_∩)O哈哈~ 成功 ;
待解决问题:
selinux :linux 权限系统,至今权限测试最全面的
ssh-add
setenforce 0