Centos6.5之ssh免密码登录配置
Centos6.5之ssh免密码登录配置
centos ssh 免密码登录
0.说明
这里为了方便说明问题,假设有A和B两台安装了centos6.5的主机。目标是实现A、B两台主机分别能够通过ssh免密码登录到对方主机。不同主机的配置过程一样,这里介绍A主机的配置过程。
事先在AB主机分别创建好要免密码登录的用户名,在/etc/hosts文件增加主机名和ip。
创建新用户:useradd jay
设置密码:passwd jay,输入自己想要的密码即可,之后su jay切换用户
修改主机名:vim /etc/sysconfig/network,加入hostname=master,注销系统之后即可看到修改成功
修改hosts文件:vim /etc/hosts
192.168.88.101 master
192.168.88.102 slave1
1.环境设置
1.1 关闭防火墙(root权限)
关闭selinux。到/etc/selinux/config下,把SELINUX=enforcing修改为SELINUX=disabled 。需要root权限。
# su root
Password:
$ vim /etc/selinux/config
找到SELINUX并修改为SELINUX=disabled
关闭防火墙iptables
service iptables stop(服务器重启后会失效)
chkconfig iptables off(重启自动关闭防火墙)
1.2 修改sshd的配置文件(root权限)
$ vim /etc/ssh/sshd_config
找到以下内容,并去掉注释符“#”
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
1.3 重启sshd服务(root权限)
$ /sbin/service sshd restart
或 /etc/init.d/sshd restart
2.本机生成公钥和私钥
从root切换回要免密码登录的用户jay,执行命令。
# ssh-keygen -t rsa
默认在用户jay的家目录(~/.ssh/)生成两个文件:
id_rsa: 私钥
id_rsa.pub:公钥
3.把公钥导入到认证文件
3.1 导入到本机
# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
完成这一步,再按照步骤4修改相关文件权限,可以免密码登录本机。可以输入以下命令验证。
ssh localhost
如果能够登录,即验证成功。
3.2 导入到目标主机
3.2.1在本机操作,传送到目标主机
# scp ~/.ssh/id_rsa.pub root@目标主机ip或主机名:/home/id_rsa.pub
注意把文件传送到目标主机时,要用root用户,否则会因权限不够而拒绝。输入目标主机密码后,出现OK即传输成功。
3.2.2 登录到目标主机,把公钥导入到认证文件
使用要被免密码登录的用户名jay,登录到目标主机。然后执行以下操作。
# cat /home/id_rsa.pub >> ~/.ssh/authorized_keys
再按照步骤4修改相关文件权限,完成免密码登录设置。
4.更改相关文件的权限
# chmod 700 ~/.ssh
# chmod 600 ~/.ssh/authorized_keys
至此,完成免密码登录设置。
5. 测试
A主机(jay@master),B主机(jay@slave1)。在A主机,切换为jay用户,执行以下命令测试:
ssh slave1
或者ssh -v jay@slave1 (-v 调试模式,显示登陆信息)
能够免密码直接登录,即设置成功,以后就可以用"ssh user@host"直接免密码登陆了。如失败或者仍然要输入密码,可以在服务器查看日志文件:/var/log/secure查找原因。
然后请再仔细检查以上各个步骤,如果发现步骤没有错但还是不行,就把服务器重启然后尝试免密码登录(本人之前配置的时候就遇到过类似的情况,重启服务器后就可以免密码登录了)。