1. 生成 SSH 密钥对(Windows/Linux/macOS)
1.1 生成 RSA 密钥对(建议)
ssh-keygen -t rsa -C "gitlab-runner"
-t rsa
:指定密钥类型为 RSA。-C "your_email@example.com"
:注释(可选,用于标识密钥)。
执行后:
- 默认保存路径:
- 建议不设置密码(直接回车两次),否则每次使用 SSH 需输入密码。
1.2 可选:生成 Ed25519 密钥(更安全)
ssh-keygen -t ed25519 -C "your_email@example.com"
Ed25519 比 RSA 更安全且更快,但部分旧系统可能不支持。
2. 配置 SSH 免密登录 Linux 服务器
2.1 将公钥上传到 Linux 服务器
方法 1:使用 ssh-copy-id(推荐)
username:对应远程服务器的用户。
server_ip:对应远程服务器的IP地址。
ssh-copy-id -i ~/.ssh/id_rsa.pub username@server_ip
输入服务器密码后,公钥会自动添加到 ~/.ssh/authorized_keys。
方法 2:手动复制
查看公钥:
cat ~/.ssh/id_rsa.pub
登录服务器,将公钥追加到 authorized_keys:
mkdir -p ~/.ssh
echo "你粘贴的公钥文本内容" >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
2.2 测试 SSH 登录
username:对应远程服务器的用户。
server_ip:对应远程服务器的IP地址。
ssh username@server_ip
如果服务器使用的不是22端口,则可以使用 -p 端口
ssh username@server_ip -p 10010
如果配置正确,应直接登录,无需密码。