配置本地SSH Config后仅能登录ron,无法访问VPS的root用户,求排查
问题原因与解决办法
你的核心问题是SSH配置文件中相同的Host名称会被第一个匹配的配置项覆盖。你现在两个Host块都用了161.00.100.100作为Host名,SSH客户端只会读取第一个对应ron的配置,完全不会加载第二个root的配置,所以自然无法用root身份登录。
正确的配置方式
给每个用户配置不同的Host别名,这样SSH能区分不同的登录规则,修改后的~/.ssh/config如下:
Host vps-ron HostName 161.00.100.100 User ron IdentityFile ~/.ssh/private_key_for_ron IdentitiesOnly yes Host vps-root HostName 161.00.100.100 User root IdentityFile ~/.ssh/private_key_for_root IdentitiesOnly yes
使用时直接输入对应的别名即可:
- 登录ron用户:
ssh vps-ron - 登录root用户:
ssh vps-root
额外检查项
如果修改配置后还是无法登录root,再排查以下几点:
- 本地root对应的私钥
private_key_for_root是否存在,且权限必须为600(执行chmod 600 ~/.ssh/private_key_for_root修复权限) - 远程服务器上root用户的
~/.ssh/authorized_keys文件权限需为600,~/.ssh目录权限需为700(远程执行chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys) - 检查远程SSH服务配置
/etc/ssh/sshd_config中是否允许root登录:- 密钥登录的话,确保
PermitRootLogin设置为yes或prohibit-password - 修改后重启SSH服务:
sudo systemctl restart sshd
- 密钥登录的话,确保
内容的提问来源于stack exchange,提问作者Ron
相关产品推荐
相关产品推荐

