1、简介
在多人共享的linux服务器中,我们通常为每个人分配一个账号,也即创建一个用户给相应的人使用,便于管理和维护。同时,为了安全,使用ssh验证是一个更好的选择。
ssh验证即使用密钥对,由公钥和私钥组成,通过特定算法生成的密钥保证全球唯一,将公钥注册到云服务器系统的用户上,私钥保存在本地,本地就可以借助远程登陆工具,使用私钥访问云端的服务器了,root用户的绑定和远程工具使用可参照:云服务器远程登录方法_木星mx的博客-CSDN博客
本文主要介绍如何为linux用户生成和注册密钥,后面会有ssh原理介绍,感兴趣的小伙伴可以看看
2、步骤
1、切换到想绑定的用户:su [用户名]
2、进入用户根目录:cd ~
3、使用命令生成密钥:ssh-keygen
注:这是采用默认配置生成的密钥,即以rsa加密算法生成2048位的密钥
完整命令为:ssh-keygen -t [加密算法] -b [密钥位数]
回车后会有密码输入框,可设置密钥密码,也可继续回车,即不设置密码
若此步生成失败,检查.ssh文件夹的权限,命令为:
ll -a
这个命令是查看当前文件夹的所有文件,包含隐藏文件,.ssh为隐藏文件夹
若命令执行后发现该文件夹不为当前用户所有,如下图为root账户所有
这可能是因为权限高于本用户的用户在此处执行了第3步的命令,解决方法为
方法一:切换高权限用户,将其设置为需要绑定公钥的用户所有,在切换回来
方法二:切换高权限用户,将其删除,切换回来,重新执行密钥生成命令
注意:高权限用户访问该文件夹的命令为:
1、cd /home/[需要绑定密钥的用户名]
2、执行:ll -a 即可查看该文件夹
4、第3步执行成功后.ssh文件夹会有以下文件
前者为私钥,需要保存到本地
后者为公钥,需要注册到当前用户
5、在本用户的.ssh目录注册生成的公钥:cat id_rsa.pub >> authorized_keys
6、执行:ls -a,发现以下文件则说明注册成功,然后修改该文件的访问权限:
chmod 600 [文件名] 这样这个文件就只能由本用户进行读写了
7、最后将id_rsa文件(私钥)下载保存到本地计算机上即可用其进行远程访问,服务器端只需保存第六步的文件,其余两个文件可删除
这一步可以使用xftp完成,若使用的是腾讯云服务器,可阅读以下文章,里面有用root账户连接远程服务器的方法: 云服务器远程登录方法_木星mx的博客-CSDN博客
3、原理介绍