![使用公钥从 Windows 客户端通过 SSH 连接到 Linux 服务器时出现问题](https://linux22.com/image/1538602/%E4%BD%BF%E7%94%A8%E5%85%AC%E9%92%A5%E4%BB%8E%20Windows%20%E5%AE%A2%E6%88%B7%E7%AB%AF%E9%80%9A%E8%BF%87%20SSH%20%E8%BF%9E%E6%8E%A5%E5%88%B0%20Linux%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%97%B6%E5%87%BA%E7%8E%B0%E9%97%AE%E9%A2%98.png)
这个问题是 Cygwin 特有的。
我的目的是从 Windows 10 Pro 客户端通过 SSH 连接到 Linux Debian 9 Stretch 服务器。
我目前已完成的步骤:
使用 OpenSSH 包安装 Cygwin。
在 Cygwin 中生成的私有-公共对:
ssh-keygen -t rsa -b 8192
将服务器的公钥复制到 Cygwin:
ssh-copy-id user_name@ip_address -p port_number
首次连接服务器:
ssh user_name@ip_address -p port_number
它告诉我:
The authenticity of host '[ip_address]:port_number ([ip_address]:port_number)' can't be established.
... 您确定要继续连接吗(是/否)?
我回答
yes
。我在 Cygwin 中定义了一个别名并获取了它的来源:
vi .bash_aliases
和第一次连接一模一样。
我重新启动了 Cygwin。
现在我遇到的问题是,当我这样做时:
ssh-server
它总是要求我输入私钥密码。我不知道为什么。因为它显然是加密的,但我该如何摆脱它呢?:
Enter passphrase for key '/home/user_name/.ssh/id_rsa':
注意:从我的 Linux 机器连接时,它不会要求输入该密码。我是不是漏掉了什么步骤?
编辑:
当我启动 SSH 代理并添加密钥时,我就可以完美地连接:
启动 SSH 代理:
eval `ssh-agent -s`
将缺失的密钥添加到身份:
ssh-add
但这只对一个会话有效,为什么它不是永久的?