我无法登录我的 droplet。这是我针对此问题发表的另一篇帖子,虽然没有解决我的问题,但解释了我尝试过的一些方法。 https://stackoverflow.com/questions/52917470/permission-denied-publickey-digital-ocean/52972508?noredirect=1#comment92856534_52972508
我刚刚尝试过的:
ssh-key gen
。命名密钥portfolio
。命名会不会有问题?我的机器上唯一能用的密钥是默认名称为的密钥id_rsa
,但该名称不能有多个密钥集。调试中有一行显示,Offering public key: RSA SHA256:blahblah /Users/ME/.ssh/id_rsa
所以它看起来像是连接到错误的密钥???我尝试连接到名为的特定私钥。不行。ssh -i ~/.ssh/portfolio [email protected]
portfolio
Permission denied (publickey).
登录 DO 控制台内的服务器。。
nano /.ssh/authorized_keys
复制我的公钥(名为 portfolio)。明白了这里- 创建新用户并保存。
- 使用我的 Mac 上的终端测试密钥对
ssh -v -i ~/.ssh/portfolio [email protected]
大胖子Permission denied (publickey).
显然登录也不起作用。为什么?密钥匹配且到位,但仍然找不到对方。
进一步调试:使用数字海洋控制台,目前这是我访问我的 droplet 的唯一方式,我发现复制/粘贴不起作用。粘贴公钥会产生一串与真实密钥完全不同的字符。这甚至发生在 nano 中。
答案1
我想更新一下我是如何解决这个问题的。问题是:
- 密钥没有正确传送到服务器。或者传送到的版本不正确。
- 一旦我放置了正确的密钥,我的本地机器和服务器就找不到彼此匹配的正确密钥。
已解决1.-ssh-copy-id -i ~/.ssh/mykey root@MY-IP
尝试复制公钥失败。~/.ssh/authorized_keys
由于我在本地被锁定,我还尝试将其直接粘贴到 Digital Ocean 控制台中,但粘贴的许多字符都是错误的。粘贴功能有些问题,而 Digital Ocean 员工对此一无所知。
因此,为了在本地工作,我在 DO 控制台上重置了 root PW,然后在本地机器上重置了 root PW,但使用了密码。然后我粘贴了公钥并使用 diff 工具确保它们相同。这次是相同的。ssh [email protected]
~/.ssh/authorized_keys
已解决 2. - 密钥仍然无法连接。我只能使用-i
标志进行连接(这意味着identity _file并手动连接密钥), 但我不想每次都输入这个,所以我做了一个。ssh -i ~/.ssh/mykey [email protected]
~/.ssh/config
Host myapp
User user1
HostName 123.456.789.10
IdentityFile ~/.ssh/mykey
然后,ssh myappp
我就可以登录了。不知道为什么会发生这些事情。我想可能是因为我没有正确命名它们,因为id_rsa
工作正常,但id_rsa2
事实并非如此,所以不知道是什么原因。会然后就可以工作了,但是这些解决方法解决了这个问题。
答案2
对我来说,对于我的新 droplet 来说,这更简单。我没有为 droplet 分配防火墙,允许在端口 22 上使用 SSH。