我用了本文设置密钥和用户,使用 Putty 从 Windows 系统登录 Ubuntu 服务器。
我现在想添加一个将从 MacBook 登录的额外 ssh 用户。我使用 ssh-keygen 生成本地密钥,但无法将密钥复制到服务器。这是我的 bash 读数(出于显而易见的原因,部分内容已更改)
MacBook-Pro:〜joe$ scp -2 -P 50022 -v〜/ .ssh / id_rsa.pub[电子邮件保护]:
正在执行:程序 /usr/bin/ssh 主机 111.222.333.444,用户 newuser,命令 scp -v -t 。OpenSSH_5.2p1
,OpenSSL 0.9.8l 2009 年 11 月 5 日
debug1:正在读取配置数据 /etc/ssh_config
debug1:连接到 111.222.333.444 [111.222.333.444] 端口 50022。debug1
:已建立连接。
debug1:身份文件 /Users/joe/.ssh/id_rsa 类型 1
debug1:身份文件 /Users/joe/.ssh/id_dsa 类型 -1
debug1:远程协议版本 2.0,远程软件版本 OpenSSH_4.3
debug1:匹配:OpenSSH_4.3 pat OpenSSH_4*
debug1:为协议 2.0 启用兼容模式
debug1:本地版本字符串 SSH-2.0-OpenSSH_5.2
debug1:SSH2_MSG_KEXINIT 已发送
debug1:SSH2_MSG_KEXINIT 已接收
debug1:kex:服务器->客户端 aes128-ctr hmac-md5 none
debug1:kex:客户端->服务器 aes128-ctr hmac-md5 none
debug1:SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) 已发送
debug1:期待SSH2_MSG_KEX_DH_GEX_GROUP
debug1:SSH2_MSG_KEX_DH_GEX_INIT 发送
debug1:期待 SSH2_MSG_KEX_DH_GEX_REPLY
debug1:主机“[111.222.333.444]:50000”已知并与 RSA 主机密钥匹配。
debug1:在 /Users/joe/.ssh/known_hosts:2 中找到密钥
debug1:ssh_rsa_verify:签名正确
debug1:已发送 SSH2_MSG_NEWKEYS
debug1:需要 SSH2_MSG_NEWKEYS
debug1:已收到 SSH2_MSG_NEWKEYS debug1
:已发送 SSH2_MSG_SERVICE_REQUEST
debug1:已收到 SSH2_MSG_SERVICE_ACCEPT
debug1:可以继续的身份验证:publickey debug1
:下一个身份验证方法:publickey
debug1:提供公钥:/Users/joe/.ssh/id_rsa
debug1:可以继续的身份验证:publickey
debug1:正在尝试私钥:/Users/joe/.ssh/id_dsa
debug1:没有其他身份验证方法可尝试。
权限被拒绝(公钥)。连接丢失
答案1
您需要使用 Windows 机器上的 Putty 登录并退出 .ssh/authorized_keys 文件,并将您在 Mac 上生成的密钥添加到该文件中。
不要运行命令
scp -2 -P 50022 -v ~/.ssh/id_rsa.pub [email protected]:
这将覆盖服务器上现有的密钥,并且由于服务器仅接受密钥登录,因此它也不会起作用。
答案2
您需要将 Joe 的公钥 (.ssh/id_rsa.pub) 的内容附加到服务器上的 ~newuser/.ssh/authorized_keys 文件中。我建议使用 MacBook 上的 RDP 连接到您的 Windows 机器,确保剪贴板已共享。在 MacBook 上查找公钥的内容,然后打开连接到服务器的 Putty 窗口。然后运行...
cat - >>~newuser/.ssh/authorized_keys
并粘贴关键内容,按ctrl+d关闭文件。
或者,如果你可以在服务器上启用密码验证,你可以使用 mac 上的“ssh-copy-id”
答案3
另外,您也可以简单地将您在 Windows 机器上生成的私钥复制到 Mac 上(您可能需要转换密钥格式,请参阅ssh
Mac 上的手册页...)。没有麻烦,没有麻烦。