当前位置 知且行 linux 正文 下一篇:

linux使用ssh key设置免密码登录

linux使用账号密码连接服务器既不方便,也不安全,一旦密码被泄露,或者部门有人离职,都对服务器的安全产生隐患,最好的方式是通过公钥登录

假设现在有两台电脑,A:客户端 B:服务器,以下操作可让A通过公钥登录B服务器

生成公钥与公钥

  1. # 生成公钥与私钥,一路回车即可
  2. ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

查看生成的公钥与私钥

  1. $ ls ~/.ssh
  2. authorized_keys id_rsa id_rsa.pub

服务器写入公钥

假设服务器用户名是:vagrant, ip地址是:192.168.1.12

登录服务器,将客户端的公钥写入~/.ssh/authorized_keys

公钥连接

为了更方便地连接,在客户端电脑的~/.ssh/config加入以下配置:

  1. Host *
  2. ServerAliveInterval 30
  3. Host vagrant
  4. HostName 192.168.1.12
  5. IdentityFile ~/.ssh/id_rsa
  6. User vagrant
  7. Port 22

保存后,只需要执行ssh vagrant即可连接服务器,如果依然提示要输入密码,登录服务器,查看日志文件 cat /var/log/secure

一般是因为服务器的~/.ssh/authorized_keys权限太大

  1. $ sudo cat /var/log/secure | grep refuse
  2. Jan 23 11:14:29 hk1 sshd[16898]: Authentication refused: bad ownership or modes for file /home/testUser/.ssh/authorized_keys

这种情况,执行chmod 600 ~/.ssh/authorized_keys,然后重启sshd服务:sudo systemctl restart sshd

客户端就可以连接上服务器了,免去了每次输入密码的繁琐

转载必须注明出处:https://www.zhiqiexing.com/70.html

关于我

我希望能成为一个认真、有趣、创造更多价值的人
关注微信
微信扫一扫关注我

微信扫一扫关注我

返回顶部