Linux服务器禁止密码登录,设置秘钥登录

  1. 生成SSH密钥 (客户机端)

执行ssh-keygen -t rsa命令创建RSA密钥对,执行结果如下(键入3次回车):

[root@node01 .ssh]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): [回车]
Enter passphrase (empty for no passphrase): [回车]
Enter same passphrase again: [回车]
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:wE9FYDCaUVqNYM0a/1T0D9t3S9sFwAscxBlsgod4TCA root@Server-i-sbnv1kiesu
The key's randomart image is:
+---[RSA 2048]----+
|  E =X**oOB=.    |
|   ooBOo+.O...   |
|    +=o..+ .o..  |
|    . .+.   .= . |
|       oS   . o.+|
|        .     ..*|
|               o.|
|                 |
|                 |
+----[SHA256]-----+

此时,公钥保存在 ~/.ssh/id_rsa.pub 中;私钥保存在~/.ssh/id_rsa中。

  1. 将刚生成的公钥复制到目标服务器 (私钥在客户端,需要私钥与公钥配对)
 ssh-copy-id user@IP
 #或者,您也可以使用SSH粘贴密钥
 cat ~/.ssh/id_rsa.pub | ssh user@IP "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
  1. 修改配置文件 (服务器端)
    以下操作均修改/etc/ssh/sshd_config文件,(注意:需要配置位置处修改,在文件后面追加不生效
    a) 禁止密码登录,只允许密钥登录(一般只需要修改此项即可)
    PasswordAuthentication no
    b) 禁止ChallengeResponseAuthentication
    ChallengeResponseAuthentication no
    c) 开启UsePAM
    UsePAM yes
    注:如果b和c项都为yes时,a项的配置是无效的。所以b和c项只要设置一项为no就可以,本例中设置b项为no。

  2. 重启SSH服务
    service sshd restart

  3. xshell ssh私钥登录配置
    Linux服务器禁止密码登录,设置秘钥登录_第1张图片

你可能感兴趣的:(Linux,linux,服务器,运维)