ssh: connect to host **.**.**.**
port 22: No route to host
服务器不存在,可能没开机或者不在同一个网络中。
ssh: connect to host **.**.**.**
port 22: Connection refused
ssh 服务的端口可能改了,默认是 22,很多时候出于安全考虑会调整端口。此外也有可能是 ssh 服务没有开启。
密码正确,但不能连接
类似这种提示(关于 Permission denied
还有很多原因,看后面):
Permission denied, please try again.
多半是因为你使用了 root 身份登录,而服务器没有开启 root 用户登录 ssh 的权限。
解决办法:
# 修改 /etc/ssh/sshd_config
PermitRootLogin no 改为 PermitRootLogin yes
Host key verification failed.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
显而易见,证书不匹配,直接删掉 ~/.ssh/known_hosts
文件不失为一个快捷的解决办法。
Permissions 0755 for '/User/xxxx/.ssh/id_rsa' are too open.
遇到这种情况:
Macintosh:Permissions 0755 for '/User/xxxx/.ssh/id_rsa' are too open.
Linux:Permissions 0755 for '/home/xxxx/.ssh/id_rsa' are too open.
这是说你的私钥权限太大, 所以需要只有你来操作
sudo chmod 600 ~/.ssh/id_rsa
sudo chmod 600 ~/.ssh/id_rsa.pub
Failed to add the host to the list of known hosts
遇到下面这种情况说明的 known_hosts 文件的权限有问题
Are you sure you want to continue connecting (yes/no)? yes
Failed to add the host to the list of known hosts
执行这行命令
sudo chmod 644 ~/.ssh/known_hosts
最后你需要把你的 .ssh 文件夹的权限设置正确, 执行下面命令
sudo chmod 755 ~/.ssh
如何定位问题
上面两种情况默认也会返回 Permission denied 的提示。所以为了更好定位问题,在使用 ssh 时可以使用 -v 参数查看更多信息。这样会更容易定位问题。