淘先锋技术网

首页 1 2 3 4 5 6 7

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

bec7574c1e755b6431cce1ee40fa1060.png

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

生成公钥与公钥

# 生成公钥与私钥,一路回车即可

ssh-keygen -t rsa -b 4096 -C "[email protected]"

查看生成的公钥与私钥

$ ls ~/.ssh

authorized_keys id_rsa id_rsa.pub

服务器写入公钥

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

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

4f903a1ef25fc9b06cb869cf0ba8db65.png

公钥连接

为了更方便地连接,在客户端电脑的~/.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

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