配置SSH密钥认证

配置Windows公私钥

  1. 打开本地cmd终端。
  2. 执行如下命令生成公私钥对。

    ssh-keygen -m PEM -t rsa -b 3072

    目标服务器操作系统为openEuler 22.03时,需要使用其它安全的加密算法,例如:ssh-keygen -m PEM -t ecdsa -b 521生成公私钥对。

    目标服务器操作系统为openEuler 22.03 (LTS-SP1)时,需要使用其它安全的加密算法,例如:ssh-keygen -m PEM -t ed25519 -b 521生成公私钥对。

    目标服务器操作系统为openEuler 22.03 (LTS-SP2)时,需要使用其它安全的加密算法,例如:ssh-keygen -m PEM -t ed25519 -b 521生成公私钥对。

    过程中需要:

    • (可选)输入保存的文件名,默认为在“C:\Users\username\.ssh”目录下保存为“id_rsa”(私钥)和“id_rsa.pub”(公钥)文件。
    • (可选)设置密钥的密码口令。

    回显信息如下:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Generating public/private rsa key pair. 
     Enter file in which to save the key (C:\Users\username\.ssh\id_rsa): 
     Enter passphrase (empty for no passphrase): 
     Enter same passphrase again: 
     Your identification has been saved in C:\Users\username\.ssh\id_rsa. 
     Your public key has been saved in C:\Users\username\.ssh\id_rsa.pub. 
     The key fingerprint is: 
    SHA256:rCRpryf6uZU+dQd/S8WN1azvay58zi3gtb53gayhvO8 china\username@HGHY4USERNAME 
     The key's randomart image is: 
    +---[RSA 3072]----+
    |               ..|
    |                +|
    |               =.|
    |     . .  .   o +|
    |    + . S  o. .o |
    |   . + o. ..+o+..|
    |      =....o+= +.|
    |    .=o  o ..o=o=|
    |  .o=+.. .+E .OO+|
    +----[SHA256]-----+
    

  3. 普通用户登录服务器并上传公钥文件“id_rsa.pub”

    将公钥文件放至“/home/操作系统用户名/.ssh”目录下,将公钥文件“id_rsa.pub”名字改为authorized_keys

    如已存在此“authorized_keys”文件,将公钥文件内容复制至authorized_keys文件中即可。

  4. 设置“authorized_keys”文件的权限为600。

    chmod 600 /home/操作系统用户名/.ssh/authorized_keys

  5. 查看服务器ssh配置文件。

    cat /etc/ssh/sshd_config

    检查以下两处开关:

    PubkeyAuthentication yes

    RSAAuthentication yes

    如若不是“yes”将上述开关设为“yes”后保存配置文件并重启sshd服务。

  6. 在IDE插件中选择密钥认证,在操作界面上直接导入本地的私钥文件即可。

配置Linux公私钥

  1. 使用SSH远程登录工具,以系统用户登录Linux操作系统命令行界面。

    该步骤必须在root用户下执行,若以普通系统用户登录,需要执行su切换到root用户下执行后续操作。

  2. 执行如下命令生成公私钥对。

    1
    ssh-keygen -t rsa -b 4096
    

    过程中需要:

    • (可选)输入保存的文件名,默认为在“/root/.ssh/id_rsa”目录下保存为“id_rsa”(私钥)和“id_rsa.pub”公钥)文件。
    • (可选)设置密钥的密码口令。

    回显信息如下:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa):
    /root/.ssh/id_rsa already exists.
    Overwrite (y/n)? y
    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:g8T/XaRUqANpuIjxnI34In89+R68QckZPw7eyEaCU+o root@host11
    The key's randomart image is:
    +---[RSA 4096]----+
    |       . .   ..  |
    |  .  .. +   ..   |
    |   * =+o.. .. .  |
    |  o *=o+ =o. o   |
    |   .+ o S o.. .  |
    |. .... B B o .   |
    | o .E. .O + .    |
    |  . . +. +       |
    |   .   ++        |
    +----[SHA256]-----+
    

  3. 执行如下命令将公钥文件上传到节点服务器。

    1
    ssh-copy-id -i /root/.ssh/id_rsa.pub root@Server IP
    
    • /root/.ssh/id_rsa.pub为生成的公钥文件,Server IP为节点服务器IP地址,请根据实际替换。
    • 上传的公钥文件默认保存在“/root/.ssh”目录,若使用普通用户请上传至对应用户目录下,且在命令中将root用户替换为普通用户名。

    过程中需要输入节点服务器对应用户的密码。

  4. 执行如下命令将私钥文件复制到“/home/devkit”目录下。

    1
    cp /root/.ssh/id_rsa /home/devkit
    

  5. 执行如下命令设置devkit用户的权限。

    1
    chown devkit:devkit /home/devkit/id_rsa