这个问题是 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
但这只对一个会话有效,为什么它不是永久的?