您的位置 首页 linux

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

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

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

生成公钥与公钥

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

查看生成的公钥与私钥

$ ls ~/.ssh
authorized_keys  id_rsa  id_rsa.pub

服务器写入公钥

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

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

公钥连接

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

Host *
    ServerAliveInterval 30

Host vagrant
    HostName 192.168.1.12
    IdentityFile ~/.ssh/id_rsa
    User vagrant
    Port 22

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

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

$ sudo cat /var/log/secure | grep refuse
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

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

本文由钟森龙创作,转载请注明出处:http://zhiqiexing.com/70.html
关注微信
微信扫码关注

微信扫一扫关注我

返回顶部