首先生成秘钥


远程服务端

  • 生成秘钥
1
ssh-keygen

中间会让输入命名、密码、地址,可以直接回车键过去

  • 重命名公钥,配置权限
1
2
3
4
cd ~/.ssh
mv id_rsa.pub authorized_keys
chmod 600 authorized_keys #修改公钥为只有属主有读写权限(安全考虑)
chmod 700 ~/.ssh #修改.SSH目录为只有属主有读、写、执行权限(安全考虑)
  • 重启ssh
1
/etc/init.d/ssh restart
  • 复制秘钥
1
vim id_rsa

复制id_rsa的内容粘贴到客户端


本地客户端

  • 把服务端复制的秘钥保存到一个文件中, 文件名不要有后缀

例:保存文件为~/.ssh/server_rsa

  • 修改保存的秘钥权限
1
chmod 600 server_rsa

到这一步就已经可以使用秘钥登录了,虽然有点麻烦

1
ssh -p xx root@IP -i ~/.ssh/server_rsa
  • 修改sshconfig配置文件,简化ssh登录
1
vim ~/.ssh/config

把下面的代码复制到config中

1
2
3
4
5
Host abc   # abc是自己命名的  
HostName 服务器IP
User 用户名
Port 端口 # -p
IdentityFile 保存的秘钥地址 # -i

保存config文件,直接ssh abc就可以免密登录了

参考:https://segmentfault.com/a/1190000015362485