我有一个在 Ubuntu 16.04 上运行的 DigitalOcean droplet,我正尝试通过 PuTTY(SSH 客户端)访问它。
每当我连接到 droplet 时,系统都会按预期提示我输入用户登录,但在输入用户帐户的密码后,系统会再次要求输入密码,就好像密码不正确一样。我可以澄清一下110%密码正确。如下所示:
我可以通过 DigitalOcean 网站上的 droplet 控制面板访问控制台,并且我使用的登录详细信息与 PuTTY 的相同。
使用我可以通过 DigitalOcean 控制面板使用的控制台,我检查了我的 UFW 设置并且完全允许使用 OpenSSH。
我该如何解决这个问题?我需要从 PuTTY 和其他外部终端进行 SSH 访问。
答案1
不建议对云实例使用用户/密码,因为密码可能被黑客入侵。
相反,使用 ssh 密钥。
当您通过 Web 控制台登录实例时,输入:
ssh-keygen -t rsa
并继续按“Enter”键,直到出现新的提示行。
这将为您的实例生成私钥和公钥。
接下来输入:
cat ~/.ssh/id_rsa
复制内容并粘贴到 Windows 机器上的文件中(建议使用 Notepad++,因为记事本可能会添加额外的不可见字符),例如:
my_private_key.pem
接下来,下载PuttyGen,打开并加载你创建的密钥文件,然后点击保存私钥并覆盖密钥文件(my_private_key.pem)。
然后配置Putty如下:
在左侧窗格中,展开连接 -> SSH -> AUTH,然后在右侧窗格中单击“浏览”并选择密钥。
再次在左侧窗格中单击“数据”并插入用于登录实例的用户名。
返回“会话”填写实例的公网IP,为连接命名,点击“保存”。
然后双击您为会话指定的名称,它将使用私钥自动连接,而无需输入密码。