linux设置普通用户使用密钥登录

前情

腾讯云购买的服务器设置密码很容易被暴力破解,用密钥登录安全很多。root用户新建的用户也要用密钥登录更安全,如果一直su - 用户名登录

  1. 不方便
  2. 用xftp等服务上传文件到用户使用的服务下,归属人是root,还要chown改权限才能使用。

设置普通用户使用密钥登录

  1. 生成密钥:
su - 用户名
--如果已经是该用户操作先回到家目录
cd ~
--查看是否以前设置过密钥,没有.ssh文件的没有设置过密钥,有可以删除重设
ll -a  
--生成密钥,按提示操作
ssh-keygen
--成功后
chmod -R 700 .ssh/ ;注意权限!
cd ~/.ssh
cat id_rsa.pub >> authorized_keys 
chmod 600 .ssh/authorized_keys ;注意权限!
然后私钥文件同在.ssh目录下id_rsa,下载到本地,登陆时设置下即可
sz id_rsa
会弹出文件目录选择框,自己选好位置下载好把服务器的删除即可
rm -f  id_rsa

如果 authorized_keys 文件、$HOME/.ssh 目录 或 $HOME 目录让本用户拥有者之外的用户有写权限,那么 sshd 就会拒绝使用 ~/.ssh/authorized_keys 文件中的 key 来进行认证。此时报错

the selecdted user key is not registered in the remote host. Try again.

ssh-keygen 命令
密钥对可通过 ssh-keygen -t rsa -C ‘comment’ -f filename 生成。该命令通常在 /usr/bin 下。
生成 2 个文件:filename(私钥) 和 filename.pub(公钥)。
不指定 -f 参数,则默认存到 ~/.ssh/下,生成 id_rsa 和 id_rsa.pub 两个文件。
不指定 -C 参数,则 comment 内容默认为 user@hostname。我习惯指定 -C 参数值和密钥文件名一致,比如:rsa-hostip-usr,rsa-3git-michael;

用root用户改下文件
vi /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys 这个是用户文件名,前面我们改文件名是为了能找到这个文件
PasswordAuthentication no 不能使用密码登录

重启sshd服务
service sshd restart

设置下登录信息即可登录:linux设置普通用户使用密钥登录_第1张图片

其他

root用户可以使用腾讯云服务生成密钥,自己下载私钥,新建密钥链接:
https://console.cloud.tencent.com/cvm/sshkey
然后实例绑定密钥即可,不用管自己怎么配置,腾讯云自动会把文件都配置好

你可能感兴趣的:(linux)