配置 SSH-KEY
使用 SSH 密钥对进行免密登录,避免每次连接服务器都输入密码。
生成密钥对
# 生成 RSA 密钥(推荐 4096 位)
ssh-keygen -t rsa -b 4096 -C "[email protected]"
# 生成 Ed25519 密钥(更安全、更快)
ssh-keygen -t ed25519 -C "[email protected]"
执行后会提示:
- 保存位置(默认
~/.ssh/id_rsa) - 密码短语(可留空)
将公钥复制到服务器
方法一:ssh-copy-id(Linux/macOS)
ssh-copy-id -i ~/.ssh/id_rsa.pub username@server-ip
方法二:手动复制(Windows/通用)
步骤 1:查看公钥内容
# Windows PowerShell
Get-Content ~\.ssh\id_rsa.pub
# Linux/macOS
cat ~/.ssh/id_rsa.pub
步骤 2:登录服务器并添加公钥
# 使用密码登录服务器
ssh username@server-ip
# 创建 .ssh 目录(如果不存在)
mkdir -p ~/.ssh
# 设置正确的权限
chmod 700 ~/.ssh
# 将公钥添加到 authorized_keys 文件
echo "粘贴你的公钥内容" >> ~/.ssh/authorized_keys
# 设置 authorized_keys 文件的权限
chmod 600 ~/.ssh/authorized_keys
验证免密登录
ssh username@server-ip
如果配置成功,将不再提示输入密码。
SSH 配置文件
编辑 ~/.ssh/config 文件,简化连接命令:
Host myserver
HostName 192.168.1.100
User username
Port 22
IdentityFile ~/.ssh/id_rsa
之后可以直接使用:
ssh myserver
常见问题
# 权限问题:确保权限正确
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub
# 调试连接
ssh -v username@server-ip