通过密钥用ssh来连接linux服务器

发布时间 2024-01-05 10:07:42作者: korin5

原理

使用密码来登录,非常不安全。服务器不会识别设备,只要知道密码,谁都能登录。通过密钥就可以很好地解决这个问题。

在本机生成给ssh使用的公钥和私钥,把公钥保存到服务器上,再使用私钥来进行连接,服务器就会识别到这唯一的设备。

生成公钥和私钥

windows平台

打开命令行,选择一种密钥生成算法,输入对应的命令:

# 使用rsa算法
ssh-keygen -t rsa

# 更建议使用ed25519算法
ssh-keygen -t ed25519

然后会要求输入密钥文件的保存路径,可以回车使用默认的/c/Users/[用户名]/.ssh/id_ed25519

然后会要求设置密码,可以回车不设置密码

密钥已生成,.pub结尾的文件是公钥,公钥需要放到服务端,另一个私钥需要保存在本地,用于连接服务器

linux平台

过程和windows平台一模一样,这里就不再赘述

安装公钥

打开公钥.pub文件,复制里面的内容

在服务器的/home/[用户名]/.ssh/目录下创建authorized_keys文件:

vi /home/[用户名]/.ssh/authorized_keys

粘贴.pub的内容即可,authorized_keys文件内可以写多个公钥,以空行来分隔,在公钥字符串之前写备注也可以,不会影响读取,就像这样:
img

然后输入:wq保存退出

连接

xshell举例:

打开属性,选择用户身份验证:

img

设置密钥,然后找到你的私钥,并选择,就可以连接了

img