错误应该在哪里?本地电脑是Ubuntu。
命令:
ssh-copy-id [email protected]
结果:
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password:
exec request failed on channel 0
答案1
注意:这篇文章是对 OP 原始答案的澄清,试图使其更清楚(至少对我而言)。
看起来服务器正在运行 SSH v2 而不是 OpenSSH,这是 SSH 公钥的格式。
由于此问题,服务器无法以对所有人都有意义的方式实际处理读取和协商公钥。本质上,这就像输入密码时输入英文,而服务器原本希望输入希腊文。
因此,为了解决这个问题,我们需要将 OpenSSH 密钥转换为 SSHv2(也称为 RFC4716)密钥。OpenSSH 提供了一个命令来执行此操作:
ssh-keygen -e -f /path/to/openssh/public/key > /path/you/want/the/rfc4716/key
运行此程序,获取输出并将其上传到服务器(如果密钥尚未在服务器端转换)。
答案2
在服务器上将 SSH 更改为 SSH2。这是原因。通过转换密钥解决了这个问题。