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     查看系统的日志文件


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM