使用 SSH 密钥对认证
生成 SSH 密钥对,将公钥上传到远程服务器,实现免密码登录。在本地终端运行以下命令生成密钥对:
bash
ssh-keygen -t rsa -b 4096
生成的密钥默认保存在 ~/.ssh/id_rsa(私钥)和 ~/.ssh/id_rsa.pub(公钥)。将公钥复制到远程服务器:
bash
ssh-copy-id username@remote_host
配置 SSH 配置文件
在本地 ~/.ssh/config 文件中添加服务器配置,简化登录命令。示例配置:
bash
Host myserver
HostName remote_host
User username
IdentityFile ~/.ssh/id_rsa
配置后只需运行 ssh myserver 即可登录,无需输入密码。
使用 ssh-agent 管理密钥
启动 ssh-agent 并添加私钥,避免每次使用密钥时输入密码短语:
bash
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
检查远程服务器配置
确保远程服务器的 /etc/ssh/sshd_config 文件包含以下配置:
bash
PubkeyAuthentication yes
PasswordAuthentication no
修改后重启 SSH 服务:
bash
sudo systemctl restart sshd
调试连接问题
如果仍然需要输入密码,检查权限设置。确保本地 .ssh 目录权限为 700,密钥文件权限为 600:
bash
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa