Linux服务器密钥登陆方法

一、生成密钥对

在Linux系统中,使用密钥进行登录需要生成一对公钥和私钥。可以使用ssh-keygen命令来生成密钥对。在终端中输入以下命令:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

其中,“-t”选项指定要使用的加密算法,“rsa”表示使用RSA算法;“-b”选项指定密钥的长度,4096位的长度足以保证安全性;“-C”选项是可选的,用于添加注释。

执行完命令后,系统会提示输入保存密钥的文件名和路径,以及对私钥设置的密码。设置密码可以提高私钥的安全性。

[root@feel-test ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory ‘/root/.ssh’.
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:3xxw3N6oPe1qz9R5Gqfj/BC2XJ7sw4qXxQ9Vv3WvTnA root@feel-test
The key’s randomart image is:
+—[RSA 2048]—-+
| |
| . . .|
| . o . o|
| o . o=|
| S o E.B|
| . o OoX=|
| . + %O| | .==&o| | ..=O*|
+—-[SHA256]—–+

二、将公钥复制到服务器上

生成密钥对后,需要将公钥复制到需要登录的服务器上。可以使用ssh-copy-id命令将公钥复制到服务器上。在终端中输入以下命令:

ssh-copy-id user@server_address

其中,“user”是服务器的用户名,“server_address”是服务器的IP地址或域名。

执行命令后,系统会提示输入服务器密码。输入正确的密码后,系统就会将公钥复制到服务器上,并将其添加到服务器的authorized_keys文件中。

[root@feel-test .ssh]# touch authorized_keys
[root@feel-test .ssh]# cat id_rsa.pub >> authorized_keys
[root@feel-test .ssh]# ls
authorized_keys id_rsa id_rsa.pub
[root@feel-test .ssh]# chmod 700 /root/.ssh
[root@feel-test .ssh]# chmod 600 /root/.ssh/authorized_keys

记住服务器的权限。

[root@feel-test .ssh]# vi /etc/ssh/sshd_config

PubkeyAuthentication yes

PasswordAuthentication no


[root@feel-test .ssh]# systemctl sshd restart

三、使用密钥登录

将公钥复制到服务器上后,就可以使用密钥进行登录了。在终端中输入以下命令:

ssh user@server_address

其中,“user”是服务器的用户名,“server_address”是服务器的IP地址或域名。

如果私钥设置了密码,系统会提示输入密码。输入正确的密码后,系统就会使用私钥进行身份验证,并成功登录到服务器。

发表回复

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