CentOS 配置SSH免密码登陆

Linux就该这么学

#环境说明

客户机:Mac OS X

服务器:CentOS 6.5

客户端:OpenSSH,OS X及大多数Linux都内置了OpenSSH.’ssh -v’命令可以查看版本.



#大致流程

1.在客户机创建一对密钥文件,包括公钥文件(~/.ssh/id_rsa.pub),私钥文件(~/.ssh/id_rsa).



2.把公钥放到服务器上(~/.ssh/authorized_keys),在使用ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配。如果匹配成功就可以自动登录了。



#客户机配置

1.查看~/.ssh文件夹,若已经存在有公钥文件(id_rsa.pub),私钥文件(id_rsa),则可以跳过客户端配置.



2.生成密钥文件.

$ ssh-keygen 

然后一路回车.

然后~/.ssh下会生成id_rsa.pub和id_rsa, 其中id_rsa文件起到唯一标识你的客户机的作用.

注意:不要改这两个文件的文件名,ssh登陆时会读取id_rsa文件.



#服务器配置

1.修改sshd配置文件(/etc/ssh/sshd_config).

找到以下内容,并去掉注释符”#“

=========================

  RSAAuthentication yes

  PubkeyAuthentication yes

  AuthorizedKeysFile  .ssh/authorized_keys

=========================



2.配置authorized_keys文件.

若’~/.ssh/authorized_keys’不存在,则建立.ssh文件夹和authorized_keys文件.

将上文中客户机id_rsa.pub的内容拷贝到authorized_keys中.

PS:可以在客户机中执行命令来拷贝:

cat ~/.ssh/id_rsa.pub | ssh user@host “cat - >> ~/.ssh/authorized_keys”



注意:

1) .ssh目录的权限必须是700

2) .ssh/authorized_keys文件权限必须是600 



3.重启sshd.

$ /etc/init.d/sshd restart





#测试

客户机执行:ssh -v user@host (-v 调试模式)

会显示一些登陆信息.

若登陆失败,或者仍然要输入密码,可以在服务器查看日志文件:/var/log/secure.



若登陆成功,则以后就可以用’ssh user@host’ 直接登陆了,不用输入密码.

本文由 CentOS中文站 - 专注Linux技术 作者:centos 发表,其版权均为 CentOS中文站 - 专注Linux技术 所有,文章内容系作者个人观点,不代表 CentOS中文站 - 专注Linux技术 对观点赞同或支持。如需转载,请注明文章来源。

相关文章

发表评论

邮箱地址不会被公开。 必填项已用*标注