我首先从 Google Compute Engine(Google 的云服务)上的一个盒子开始,其中有一个名为 xyz 的帐户和一个临时 IP 地址。
我们假设临时 IP 地址是 2.3.4.5。
在我开始下面的过程之前,我能够登录到[电子邮件保护]使用密码。
然后我附加了一个静态 IP 地址。假设静态 IP 地址是 1.2.3.4。
然后我输入
my@localbox:~$ ssh-copy-id [email protected]
该命令似乎挂起了,所以我关闭了终端。
然后我做了一个简单的
my@localbox:~$ ssh [email protected]
它成功了,没有提示我输入密码。
我以为我的密钥已经进入了我的authorized_keys,所以我这样做了
xyz@cloudbox:~$ ls -al
令我惊讶的是,.ssh 仅包含一个 known_hosts 文件,而不是一个 authorized_keys 文件。
此外,命令
my@localbox:~$ ssh-copy-id [email protected]
当我尝试时仍然挂起,所以这不仅仅是一个偶然的侥幸。
如果没有 .ssh/authorized_keys 文件,我如何才能不使用密码登录此帐户?这与 ssh-copy-id 挂起的原因有关吗?
答案1
问题在于后台运行的 SSH 控制主会话。ssh-copy-id 与控制主会话挂起是一个已知错误。