【使用参考】如何连接服务器-使用ssh密钥对登录

前言

一般来说,由于人员记忆能力有限,用户往往不会设置复杂的密码,从而使账户存在安全隐患。
对于普通用户而言,这样的安全隐患仅存在于个人账户上,即使密码泄露也不会对服务器整体造成较大影响;
但对于管理员用户或是其他拥有sudo权限的用户而言,账户一旦被盗用,整台服务器都将受到攻击,会产生较大的损失。

相比于“用户名-密码”的登录方式而言,密钥登录只要私钥文件不被盗取,一般情况下都能够保证账户安全,因此建议使用ssh生成密钥对登录账户,并为账户设置更复杂的密码。

使用ssh生成密钥对

命令:ssh-keygen
预期结果:

Generating public/private rsa key pair.
Enter file in which to save the key ([user]/.ssh/id_rsa): <==有需要可在这里修改
Enter passphrase (empty for no passphrase):[直接回车]
Enter same passphrase again:[直接回车]
Your identification has been saved in [user]/.ssh/id_rsa. <==这是私钥
Your public key has been saved in [user]/.ssh/id_rsa.pub. <==这是公钥
The key fingerprint is: *****
The key's randomart image is: [会在命令行里看到一个图]

在服务器安装公钥

如果生成密钥对是在服务器上进行,直接使用以下命令进行安装:

~ $ cd .ssh
~/.ssh $ cat id_rsa.pub >> authorized_keys

完成公钥安装后,将id_rsa私钥下载到本地。

如果生成密钥对是在本地进行,则可以在服务器创建“.ssh”目录,然后将生成的“id_rsa.pub”上传至“.ssh”目录中,最后使用上述命令安装公钥。

配置密钥连接

使用MobaXterm

在MobaXterm设置密钥连接服务器时,各项基础设置与使用密码连接服务器【从零开始的Linux服务器管理】如何连接服务器-使用用户名和密码连接中的设置相同。
在完成基础设置后,选择页面中的“Advanced SSH settings”选项卡,勾选“Use private key”,并在右方输入私钥的存放位置。
image

如果使用到跳板机,则同样可以为跳板机设置密钥,勾选“Use SSH key”并输入私钥存放位置即可使用密钥连接跳板机。
image

使用VS Code

打开“~/.ssh/config”文件,修改为如下形式:

Host [这里填写服务器名称]
    HostName [这里填写服务器IP]
    User [这里填写用户名]
    Port [这里填写端口,一般用22即可]
    IdentityFile [服务器私钥路径]

如果使用跳板连接服务器,则将config文件设置为

Host [这里填写跳板机名称]
    HostName [这里填写跳板机IP]
    User [这里填写跳板机用户名]
    Port [这里填写跳板机端口]
    IdentityFile [跳板机私钥路径]

Host [这里填写服务器名称]
    HostName [这里填写服务器IP]
    User [这里填写服务器用户名]
    Port [这里填写服务器端口]
    ProxyCommand ssh -W %h:%p [跳板机名称]
    IdentityFile [服务器私钥路径]

设置正确后,使用VS Code连接服务器将无需输入密码。
特别应该注意的是,在个人实验中,如果私钥保存位置与config文件不存在于同一个~/.ssh/目录下,私钥将无法正确使用(即连接时依然要输入密码)。

posted @ 2022-10-03 10:27  TheError  阅读(1218)  评论(0编辑  收藏  举报