原理
使用密码来登录,非常不安全。服务器不会识别设备,只要知道密码,谁都能登录。通过密钥就可以很好地解决这个问题。
在本机生成给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
文件内可以写多个公钥,以空行来分隔,在公钥字符串之前写备注也可以,不会影响读取,就像这样:
然后输入:wq
保存退出
连接
以xshell
举例:
打开属性,选择用户身份验证:
设置密钥,然后找到你的私钥,并选择,就可以连接了