linux如何配置ssh密钥登录

  • linux如何配置ssh密钥登录已关闭评论
  • 160 次浏览
  • A+
所属分类:linux技术
摘要

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


为什么要用ssh密钥登录

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

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

为其他用户创建ssh密钥的步骤

# 密钥对可通过 ssh-keygen -t rsa -C ‘comment’ -f filename 生成。该命令通常在 /usr/bin 下,生成 2 个文件:filename(私钥) 和 filename.pub(公钥)。 # 切换为目标用户 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 来进行认证。所以也就无法成功使用私钥登录。

ssh-keygen 命令详解

ssh-keygen为ssh生成、管理和转换认证密钥,ssh-keygen命令用于为“ssh”生成、管理和转换认证密钥,它支持RSA和DSA两种认证密,SSH 密钥默认保留在 ~/.ssh 目录中。 如果没有 ~/.ssh 目录,ssh-keygen命令会使用正确的权限创建一个。

#命令语法  ssh-keygen [选项]  命令选项  -b:指定密钥长度;   -e:读取openssh的私钥或者公钥文件;   -C:添加注释,不指定,则comment内容默认为user@hostname;   -f:指定用来保存密钥的文件名,不指定f参数,则默认存到~/.ssh/下,生成id_rsa和id_rsa.pub两个文件;   -i:读取未加密的ssh-v2兼容的私钥/公钥文件,然后在标准输出设备上显示openssh兼容的私钥/公钥;   -l:显示公钥文件的指纹数据;   -N:提供一个新密语;   -P:提供(旧)密语;   -q:静默模式;   -t:指定要创建的密钥类型。   

基本示例

#以下 ssh-keygen 命令默认在 ~/.ssh 目录中生成 4096 位 SSH RSA 公钥和私钥文件。 如果当前位置存在 SSH 密钥对,这些文件将被覆盖。 ssh-keygen -m PEM -t rsa -b 4096 #使用ssh-kengen会在~/.ssh/目录下生成两个文件,不指定文件名和密钥类型的时候,默认生成的两个文件是 #id_rsa 第一个是私钥文件 #id_rsa.pub 第二个是公钥文件 #指定秘钥文件路径  ssh-keygen -t rsa -C '[email protected]' -f ~/.ssh/github_id_rsa #或者,在指定存放文件时输入一个新的文件名 #> Enter file in which to save the key(/Users/rumenz/.ssh/id_rsa):id_rsa_gitlab #多个SSH key的管理的情况就需要指定秘钥文件名。 

参考文章:linux如何配置ssh密钥登录