在macOS上生成SSH密钥

SSH密钥使您无需密码即可登录服务器。通过显着提高对暴力攻击的抵抗力,它们提高了便利性和安全性。

SSH(安全外壳)是最常用于远程管理和文件传输的协议,通常称为sFTP(安全文件传输协议)。当访问诸如Vultr VPS之类的远程服务器时,建议将SSH与PKE(公共密钥交换)一起使用,该服务器使用密钥对,其中将公钥提供给服务器,并将私钥存储在计算机上。

通过在云服务控制面板中添加公共密钥,可以在安装过程中将SSH密钥自动添加到服务器。您可以在云服务上管理SSH密钥。重要的是要记住,这些仅是您的公共密钥(通常用表示.pub),切勿公开您的私有密钥。

按键类型

可以选择几种不同的键类型。-t在生成时使用参数,例如ssh-keygen -t ed25519。ED25519密钥类型使用椭圆曲线签名,比DSA或ECDSA更安全,性能更高。大多数现代的SSH软件(例如6.5版以来的OpenSSH)都支持ED25519密钥类型,但是您可能仍然会发现不兼容的软件,因此默认密钥类型仍然是RSA。

默认密钥类型为2048位RSA,可提供良好的安全性和兼容性。为了提高安全性,可以使用-b生成时的参数选择较大的密钥大小,例如ssh-keygen -b 4096创建4096位RSA密钥对。

密钥生成

要生成SSH密钥,您需要打开Terminal.app“应用程序>实用程序>终端”中的内容。

要创建4096位RSA密钥对,请输入:

# ssh-keygen -b 4096

然后您将看到:

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/username/.ssh/id_rsa): 

按下Enter / Return键会将您的新密钥对保存到此默认位置,这是建议的操作。然后,您可以选择创建一个密码短语,该密码短语将对密钥进行加密,以便在未经授权的情况下无法使用它。还建议使用密码短语。

Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in id_rsa.   
Your public key has been saved in id_rsa.pub.   
The key fingerprint is:
SHA256:0irBXp+xKwT5e0ZFklbEVkzxu0Bzv9PmvstFD5w6zlQ username@Your-Mac.local   
The key's randomart image is: 
+---[RSA 4096]----+
|         =o++.   |
|        + + ..   |
|     . . +  o o  |
|   .o  .  .. + + |
|    ooo S.  . E o|
|   . oo+.+   + ++|
|    o..o+   + .o=|
|     .o o. + ..oo|
|       +.   o  ==|
+----[SHA256]-----+

至此,您的密钥对已经创建并存储在中~/.ssh/id_rsa。为了使密钥对系统可用并将密码短语存储在系统密钥链中,我们将需要完成一些其他步骤。请注意,仅当您不想每次使用该密钥口令时都提示您输入密钥口令时,才需要这样做。

将新的密钥对添加到SSH代理

输入ssh-add -K ~/.ssh/id_rsa。然后将提示您输入密码短语,您将看到以下内容:

Identity added: id_rsa (username@Your-Mac.local)

如果您想使用此SSH密钥登录到已创建的服务器,则可以使用该ssh-copy-id工具将公共密钥存储在您要访问的服务器上。

向远程服务器添加新密钥

使用ssh-copy-id

ssh-copy-id -i ~/.ssh/id_rsa.pub root@0.0.0.0

执行后,会拷贝到~/.ssh/authorized_keys中。

由于远程服务器尚不知道您的密钥,因此控制台将要求您输入登录密码。您将看到以下内容:

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/Users/username/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys

Number of key(s) added:        1

Now try logging into the machine, with: "ssh 'root@0.0.0.0'"
and check to make sure that only the key(s) you wanted were added.

现在,您可以尝试使用登录到远程服务器,ssh root@0.0.0.0并且应该在没有密码提示的情况下进行连接。

留下评论

电子邮件地址不会被公开。 必填项已用*标注