ssh 无密码,全部设置完毕,但连接超时

ssh 无密码,全部设置完毕,但连接超时

我正在尝试在两个服务器、备份和生产之间建立无密码连接。

prod 可以无密码毫无问题地连接到备份,但如果我尝试相反的方式,就会超时。

prod$ ls ~/.ssh/authorized_keys
backup.pub

backup$ ls ~/.ssh/authorized_keys
prod.pub

prod$ ssh backup
Welcome to Ubuntu 13.04 (GNU/Linux 3.8.0-31-generic x86_64)
...

backup$ ssh prod
ssh: connect to host XXX.XXX.XXX.XXX port 22: Connection timed out

我遗漏了什么?另外,显然我无法重新启动产品。

编辑:

backup$ ssh -v [email protected]
OpenSSH_6.1p1 Debian-4, OpenSSL 1.0.1c 10 May 2012
debug1: Reading configuration data /root/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to XXX.XXX.XXX.XXX [XXX.XXX.XXX.XXX] port 22.
debug1: connect to address XXX.XXX.XXX.XXX port 22: Connection timed out
ssh: connect to host XXX.XXX.XXX.XXX port 22: Connection timed out

使用 tail -f 时,超时后会出现以下情况:

Apr  3 11:35:01 sd-39181 CRON[33009]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  3 11:35:01 sd-39181 CRON[33009]: pam_unix(cron:session): session closed for user root

答案1

请尝试以下操作:

  1. 获取详细输出以查看正在发生的事情

    prod$ ssh -v backup
    
  2. 使用用户名和 IP 只是为了确保你连接的是正确的东西

    prod$ ssh -v user_name@prod_ip
    
  3. 检查服务器上是否有正确的对应私钥

  4. ~/.ssh/authorized_keys应该是一个每行一个键的文件

  5. 检查权限

  6. 检查你的访问日志,例如在 Ubuntu 上

    prod$ tail -f /var/log/auth.log
    

答案2

超时表示存在连接问题。系统无法建立 TCP 连接,并且没有收到 ICMP 错误消息(如拒绝、禁止或无法访问)。这可能是因为防火墙阻止了您的连接。使用 检查机器上的 iptables 也可能是个好主意sudo iptables -nvL

您可以通过 telnet 到端口 22 上的主机来检查 TCP 连接: telnet prod 22。最好询问防火墙管理员问题可能出在哪里。

相关内容