# Linux SSH秘钥 登录 ## 写在前面 一般在安装完服务器后都会采用密码验证的方式登录,但是这样的验证方法漏洞还是比较多的,容易被爆破。因此建议采用秘钥的方式进行远程连接。 ## 秘钥创建 ```shell $ ssh-keygen -t rsa # 创建秘钥对 Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): pzxy-centos Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in pzxy-centos. Your public key has been saved in pzxy-centos.pub. The key fingerprint is: SHA256:embl12lYQb7IpD7Mj2IwNwJSGcX1oEuCARuC7KcYtjM root@CentOS The key's randomart image is: +---[RSA 3072]----+ |*.. .=..o . | ``` 创建完会生成两份文件:"id_rsa.pub"和"is_rsa"。 其中“id_rsa.pub”是公钥文件,我们需要将公钥内容添加到认证秘钥文件中,这样就可以使用配套的私钥文件进行认证了。 ## 配置秘钥登录 ### 将公钥写入认证文件 ```shell $ cat "公钥文件" > ~/.ssh/authorized_keys $ chmod 700 ~/.ssh $ chmod 600 ~/.ssh/authorized_keys ``` ### 配置sshd-conf文件 ```shell vim /etc/ssh/sshd_config RSAAuthentication yes # 开启密钥登入的认证方式 PubkeyAuthentication yes # 开启密钥登入的认证方式 PermitRootLogin yes # 此处请留意 root 用户能否通过 SSH 登录,默认为yes # 可以正常用密钥登录了,再把这里改为no PasswordAuthentication yes #当我们完成全部设置并以密钥方式登录成功后,可以禁用密码登录。这里我们先不禁用,先允许密码登陆 ``` ### ssh登录 在关闭密码验证后,登录需要在ssh的命令中使用`-i`参数来启用秘钥文件。