centos7设置ssh免密码登陆(证书认证)

无密码登陆,其实是指通过证书认证的方式登陆,使用"公私钥"认证的方式来进行ssh登录。

  • "公私钥"认证方式原理

1、首先在client上创建一对公私钥,

公钥文件:~/.ssh/id_rsa.pub

私钥文件:~/.ssh/id_rsa

2、然后把公钥放到server上

~/.ssh/authorized_keys

3、client登录server过程

client保留私钥,在使用ssh登录server时,ssh程序发送私钥去和server上的公钥做匹配,若匹配成功则可以登录。

  • centos7配置证书验证登陆步骤

a、未设置前,需要密码进行登陆

b、确认系统已安装OpenSSH的server 和client

rpm -qa|grep openssh

c、注释掉sshd的配置文件如下三行,并重启sshd

  $ vi /etc/ssh/sshd_confi

  #RSAAuthentication yes
  #PubkeyAuthentication yes
  #AuthorizedKeysFile .ssh/authorized_keys

  $ /bin/systemctl restart  sshd.service      ---重启sshd

d、生成证书公私钥

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

 e、证书放置

cat ~/.ssh/id_dsa.pub >>~/.ssh/authorized_keys

 

f、修改authorized_keys权限

chmod 600 ~/.ssh/authorized_keys

不安全的设置,将不能使用RSA功能

g、测试登录

ssh -lstack localhost

  • 免认证登陆远程服务器

方法一:
  $cat ~/.ssh/id_rsa.pub | ssh 远程用户名@远程服务器ip `cat - >> ~/.ssh/authorized_keys`
方法二:
  在本机上执行:
  $ scp ~/.ssh/id_dsa.pub 远程用户名@远程服务器ip:/home/stack/
  登陆远程服务器后执行:
  $ cat /home/stack/id_dsa.pub >> ~/.ssh/authorized_keys

  修改文件authorized_keys的权限

  $ chmod 600 ~/.ssh/authorized_keys

  • 排障命令及log

ssh -v -lstack localhost     显示详细的登陆信息

tail /var/log/secure -n 20     查看系统的日志文件

posted @ 2017-02-28 20:18  Jacob_tian  阅读(11171)  评论(0编辑  收藏  举报