![无法通过 SSH 连接到远程服务器(需要公钥)](https://linux22.com/image/957163/%E6%97%A0%E6%B3%95%E9%80%9A%E8%BF%87%20SSH%20%E8%BF%9E%E6%8E%A5%E5%88%B0%E8%BF%9C%E7%A8%8B%E6%9C%8D%E5%8A%A1%E5%99%A8%EF%BC%88%E9%9C%80%E8%A6%81%E5%85%AC%E9%92%A5%EF%BC%89.png)
所以我被授予了 ssh 服务器的访问权限。我有用户名/密码,但服务器显然需要公钥(现在请记住,我是 ssh 新手)。当我这样做时:
ssh -p 52 [email protected]
终端说Permission denied (publickey)
。所以我开始使用
ssh-keygen -t rsa
并得到了和。id_rsa
将Chmod改为 700 和600。再次尝试 sshing server.com,错误相同。id_rsa.pub files
/root/.ssh
/root/.ssh
/root/.ssh/*
我遗漏了什么?server.com 的系统管理员给了我一个 Putty Pagant Key 文件 (.ppk)。显然,其他用户(所有 Windows)都可以使用 Putty Pagant.exe 进行连接。请帮忙 :)
答案1
如果系统管理员已向您提供了 .ppk 文件,则可以使用 puttygen 创建 ssh 密钥文件(从软件中心安装 putty-tools)
Install putty:
sudo apt install putty putty-tools
Create the public key file:
puttygen /path/to/puttykey.ppk -L > ~/.ssh/id_rsa.pub
Create the private key file:
puttygen /path/to/puttykey.ppk -O private-openssh -o ~/.ssh/id_rsa
此外,还有一些mac 说明 这也应该有效
请注意,运行命令时
puttygen /path/to/puttykey.ppk -O private-openssh -o ~/.ssh/id_rsa
它可能会要求输入密码来解密密钥,另外你应该以建立 ssh 连接的用户身份运行它,以便它将密钥存储在正确的目录中(〜符号相当于当前用户的主目录)然后在检查 chmod 权限正确后,你可以使用
ssh -p 52 [email protected]
答案2
答案这个问题可能会对您有所帮助。通常,要使用公钥身份验证,您必须先将私钥复制到另一台服务器;因此,除非系统管理员为您提供了服务器上已有的公钥/私钥对,否则您将无法使用该密钥登录。
答案3
ssh-keygen (press enter enter enter till you get the image)
user@ubuntu1:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
/home/user/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
5e:80:dd:36:0f:00:b6:58:bc:ae:a4:87:c8:bd:c1:f8 user@ubuntu1
The key's randomart image is:
+--[ RSA 2048]----+
| .+.. |
| +.+ o |
| . o.o = |
| . o + |
| . S . . |
| o . .. . |
|.o.* . . |
|..+.+ |
| E. |
+-----------------+
ssh-copy-id -i [email protected].
您将看到以下内容
(一旦输入密码就会要求输入)
user@ubuntu1:~$ ssh-copy-id -i root@ip
root@ip's password:
现在尝试使用“ssh 'root@ip'”登录机器,并检查:
~/.ssh/authorized_keys
以确保我们没有添加您意想不到的额外键。
- 现在你应该能够执行 ssh 而不需要输入密码了
答案4
亲爱的,你做得很好,但失去了注意力,有两个步骤,不管怎样,感谢你的好主意,我刚刚克服了。
ssh-keygen -t rsa ssh-keygen -t dsa cd /root/.ssh/ cp **** /etc/ssh/
现在替换 4 个相应的文件