1. SSH基础知识
- SSH定义:用于在不安全的网络上加密通信,提供登录和数据传输的安全性。
- 协议和端口:默认使用TCP端口22,可在配置文件中修改。
- 工作方式:基于客户端-服务器模型,通常通过OpenSSH实现。
2. SSH基本操作
- 连接远程主机:
ssh username@host
,用于连接到指定的远程主机。 - 执行远程命令:
ssh username@host "command"
,在连接的同时执行远程命令。 - 配置别名:在本地
~/.ssh/config
文件中配置常用主机的别名,便于快速连接。
3. SSH密钥认证
- 生成密钥:使用
ssh-keygen
生成公私钥对,可以选择使用RSA、ECDSA等加密算法。 - 免密登录:将公钥添加到远程主机的
~/.ssh/authorized_keys
文件中,实现免密码登录。 - 常见密钥文件:
id_rsa
(私钥),id_rsa.pub
(公钥)。
在Xshell 8中配置SSH公钥认证可以通过以下步骤完成:
1. 生成SSH密钥对
如果你还没有SSH密钥,可以通过Xshell 8直接生成:
- 打开Xshell 8,点击菜单栏中的 工具 -> 新建用户密钥生成向导。
- 选择密钥类型(通常选择 RSA 或 ECDSA),点击 下一步。
- 设置密钥长度(2048位或更高),点击 下一步。
- 设置密钥的保存路径,保存文件命名为
id_rsa
(私钥) 和id_rsa.pub
(公钥),然后点击 完成。
2. 在服务器上添加公钥
将生成的 id_rsa.pub
文件内容复制到服务器:
- 使用Xshell或其他终端登录到服务器。
- 在服务器的用户目录下创建
.ssh
文件夹并设置权限:mkdir -p ~/.ssh chmod 700 ~/.ssh
将
id_rsa.pub
文件内容粘贴到~/.ssh/authorized_keys
中,并设置权限:
echo "你的公钥内容" >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys
3. 在Xshell中配置使用密钥认证
- 打开Xshell的会话属性,选择 连接 -> SSH。
- 在 身份验证方法 中选择 公钥。
- 点击 用户身份设置,选择 使用现有密钥。
- 导入先前生成的私钥文件
id_rsa
(通常在生成密钥时保存的目录中)。 - 设置会话使用的用户名,并应用设置。
4. 测试连接
保存设置后,通过Xshell连接服务器,应不再提示输入密码,直接使用公钥登录。
RSA和ECDSA是两种不同的加密算法,主要区别在于加密原理、安全性和效率。
1. RSA(Rivest-Shamir-Adleman)
- 算法基础:基于大整数分解的数学难题。
- 密钥长度:常用2048或4096位。密钥越长,安全性越高,但计算效率越低。
- 安全性:RSA算法经过多年应用和测试,安全性较高。
- 性能:密钥较长,计算过程较耗时。通常适用于绝大多数SSH连接,但在小型、快速场景中效率不如ECDSA。
2. ECDSA(Elliptic Curve Digital Signature Algorithm)
- 算法基础:基于椭圆曲线的数学难题。
- 密钥长度:通常使用256位或384位,相当于2048位的RSA密钥安全性。
- 安全性:ECDSA基于椭圆曲线,提供高安全性。相同安全等级下,密钥长度比RSA短,安全性更强。
- 性能:密钥短且效率高,计算速度比RSA快,适合性能要求较高的应用。
选择建议
- 兼容性:RSA是传统方案,兼容性好,大部分服务器支持。
- 高效性:ECDSA更适合要求更高的安全和效率的场景。