使用公私钥连接Linux SSH服务器

First Post:

Last Update:

Word Count:
371

Read Time:
1 min

无密码登录是一种很安全的登录方式。服务器通过公钥和私钥对接入的用户实行验证。只要验证通过,用户无需输入任何密码,保证了服务端密码的安全性。

生成密钥对

为了让服务器进行验证,需要生成一个专用的带有私钥和公钥的密钥对。这一个密钥对是由两个文件组成,一个是位于服务器的公钥(.pub),一个是位于本机的私钥。

生成密钥对的指令是:

SHELL 共 1 行
展开
1
ssh-keygen -t rsa

根据步骤确认下去后,会在系统用户的~/.ssh目录下创建两个文件,id_rsaid_rsa.pub,分别是私钥和公钥。私钥留在本机,公钥传输到服务器上。

将公钥传到服务器

接下来就需要将公钥传输到服务器上了。最简单的传输方法是通过指令一键传输。因为windows和linux下openssh组件不一样,所以传输命令也不一样。

  • Windows
POWERSHELL 共 1 行
展开
1
type "~\.ssh\id_rsa.pub" | ssh -p {port} {user}@{host} "cat >> ~/.ssh/authorized_keys"
  • Linux
BASH 共 1 行
展开
1
ssh-copy-id -i ~/.ssh/id_rsa.pub -p {port} {user}@{host}

还有一种方法是手动复制法,首先通过ssh链接到服务器,复制自己的公钥,插入到~/.ssh/authorized_keys文件中新的一行,保存退出即可。