让 Putty 与 OpenSSH 通信的过程困扰了我很长一段时间。
我安装了 OpenSSH:
sudo apt-get install openssh
然后我使用以下命令生成 ssh 密钥:
ssh-keygen -t rsa -b 4096 -C "my user here"
上面的命令将公钥和私钥组合移动到我的用户的配置文件主.ssh
目录(/home/myUser/.ssh
)(我想我可能必须.ssh
在那里创建文件夹才能ssh-keygen
正常工作)
然后我将私钥复制到Windows并尝试在Putty中使用它。服务员一直拒绝我。
答案1
我安装了 OpenSSH:
sudo apt-get install openssh
服务器ssh
在openssh-server
包装中。因此,要么您没有安装服务器并且没有连接到您的服务器,要么它之前已经安装过。
上面的命令将公钥和私钥组合移动到我的用户的配置文件主 .ssh 目录(/home/myUser/.ssh)(我想我可能必须在那里创建 .ssh 文件夹才能使 ssh-keygen 正常工作)
它在服务器上生成了您的密钥。但要让密钥“授权”,您需要将其复制id_rsa.pub
到 ~/.ssh/authorized_keys`。
然后我将私钥复制到Windows并尝试在Putty中使用它。服务员一直拒绝我。
PuTTY 不理解 OpenSSH 格式的私钥。您需要使用 PuTTYgen 将其转换为 PuTTY 格式。
此外,移动私钥也被认为是不好的做法。无论如何,当您使用 PuTTYgen 时,您可以在客户端计算机上生成密钥并将公钥复制到服务器(显然您仍然需要将其转换为 openssh 格式:https://stackoverflow.com/a/10015651/15359441)。
答案2
这些是我用来解决问题的步骤(我正在回答我自己的问题,因为这花了我两天的时间才弄清楚)。
转到 Windows 防火墙并添加端口 22 入站/出站的允许规则。
确保将端口 22 入站/出站允许规则添加到 Linux IPTABLES。
在 Linux 上的 /home/myUser/.ssh 文件夹中,将公钥文件(具有 .pub 文件扩展名的文件)内容复制到名为 authorized_keys 的文件中(您必须创建它,就像您必须创建目录“/home/myUser/.ssh”一样(其中“myUser”是您的用户名)
将私钥复制到 Windows 盒子(客户端,安装了 putty)。
转至 Windows 上的 putty 安装目录(通常为 c:\Program Files\Putty)并运行 puttygen.exe。转到“转换”选项卡并导入您从 Linux 复制的公钥。保存它(它将保存为 .ppk 文件,这是 Putty 的密钥格式)。
连接后,在 putty 左侧,转到“SSH”,然后转到“Auth” - 在“Auth”下,加载您刚刚保存的 .ppk 格式私钥。然后连接。如果系统要求您提供用户/密码,只需在两者上按 Enter 键即可。您应该已连接/看到欢迎消息。