Linux创建新用户并设置SSH证书登录 |
您所在的位置:网站首页 › 给用户添加ssh权限 › Linux创建新用户并设置SSH证书登录 |
创建用户
要在Linux下创建一个新的用户,需要登录到root用户或是具有sudo权限的用户中,然后使用useradd命令创建用户: # 若登录root用户则无需使用sudo $ sudo useradd在创建用户后,可以使用su - 命令变更当前用户为新创建的用户,测试是否创建成功(测试后可通过exit命令退回到当前用户)。su命令中的-代表变更用户后将变更实际登录的环境(环境变量、当前目录等)。 在创建用户后,可使用passwd 命令为其设置登录密码。在某些发行版中,执行useradd命令默认需要设置密码,若不需要密码则需要添加--disabled-password选项禁用密码。 设置SSH证书登录在创建用户后,我们可以使用ssh-keygen命令生成密钥对,用于通过SSH使用证书而无需密码登录到Linux账户。例如下面使用ssh-keygen命令生成一个新的RSA密钥对,该密钥对保存在/home/xxx/.ssh/目录下,分别为私钥文件id_rsa与公钥文件id_rsa.pub(创建时可自定义文件名及其所保存的目录): $ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/xxx/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/xxx/.ssh/id_rsa. Your public key has been saved in /home/xxx/.ssh/id_rsa.pub. The key fingerprint is: ... The key's randomart image is: ...在创建密钥对后,我们要在需要使用要设置SSH登录的用户,创建~/.ssh/authorized_keys文件(若~/.ssh文件夹不存在需要手动创建并设置其访问权限),设置该文件的访问权限为当前用户可读/写,并将公钥文件id_rsa.pub的内容添加到该文件中: # 若~/.ssh目录不存在 $ mkdir ~/.ssh # 设置.ssh目录权限为只有当前用户可读/写/执行 $ chmod 700 ~/.ssh $ cd ~/.ssh $ touch authorized_keys # 选择喜欢的编辑器编辑authorized_keys文件,将公钥文件id_rsa.pub的内容写入其中 # $ emacs authorized_keys # 设置其访问权限为当前用户可读/写 $ chmod 600 authorized_keys需要注意的是,此处~/.ssh目录与~/.ssh/authorized_keys文件对应的权限必须设置正确,否则将出现无法登录的情况。 通过上述设置后,我们就可以使用ssh命令通过证书而无需密码登录到Linux账户了。 # key_file为密钥文件 $ ssh -i / @若公钥文件丢失只保留有私钥,或是使用第三方提供的密钥对的情况下(例如AWS EC2只提供私钥文件下载),可以使用ssh-keygen -f / -y命令获取其对应的公钥内容。 ssh-keygen命令部分参数ssh-keygen命令支持通过-t选项生成下列四种类型的密钥,若未指定-t选项,则默认生成rsa类型的密钥。 dsa ecdsa ed25519 rsa另外,ssh-keygen命令支持使用-b参数设置密钥的长度,对于不同类型的证书类型有不同的长度限制(部分默认值在不同版本下可能不同): dsa: 需要设置位1024位。 ecdsa: 支持256位、384位、以及521位三个长度选项。 ed25519: 固定长度,该参数将被忽略。 rsa: 未指定的情况下默认长度未2048位,最小长度位1024位。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |