ssh 无法使用密钥登陆

2023-08-04 11:38:26 +08:00
 CaptainD

我按照以下步骤进行 ssh 免密,但还是提示输入密码

  1. 服务器使用 root 创建新用户 test ,并设置密码
  2. 客户端生成新 ssh key ,key 名为 server-test
  3. ssh-copy-id -i .\server-test.pub test@serverip -p 3135
  4. (提示输入密码) ssh -i .\server-test.pub test@serverip -p 3135

服务器权限 drwx------. 2 test test 37 8 月 4 11:33 .ssh -rw-------. 1 test test 577 8 月 4 11:32 authorized_keys

这是怎么回事

1048 次点击
所在节点    问与答
11 条回复
lechain
2023-08-04 11:43:06 +08:00
ssh 登录的时候用-vvv 选项看一下 详细信息,看具体发生了什么
(盲猜一个大概率是你本地 ssh client 没有读取到你的 private key ,要么是路径不对,要么是权限不对,要么是本地客户端配置不对
dzdh
2023-08-04 11:47:24 +08:00
/usr/sbin/sshd -D -d -p 2222

本地连 ssh -vvv 看服务端和客户端都干了啥
CaptainD
2023-08-04 12:02:55 +08:00
@lechain
@dzdh

这是 vvv 的详细信息,貌似是找不到 key ?

[vvv-error01]( https://imgur.com/rRLv5JJ)
[vvv-error02]( https://imgur.com/3kpqH3k)
[vvv-error03]( https://imgur.com/BmvJOJS)
mangoDB
2023-08-04 12:03:12 +08:00
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
CaptainD
2023-08-04 12:55:49 +08:00
@mangoDB 你看我的描述,已经配置过了
busier
2023-08-04 13:55:41 +08:00
“key 名为 server-test”!

客户端默认 key 名为:“id_rsa”
CaptainD
2023-08-04 14:04:12 +08:00
@busier 我在 ssh 连接的时候指定-i 了啊
jasonyang9
2023-08-04 14:08:21 +08:00
不是应该用私钥去连接么
leo108
2023-08-04 14:10:59 +08:00
-i 参数应该跟的是私钥,你这最后一条命令用的是公钥
busier
2023-08-04 14:12:30 +08:00
赞同楼上!

ssh -i 应该导入 private key

你 ssh -i 指向了 ssh-copy-id 同样的 public key

显然这是错误的!
CaptainD
2023-08-04 14:54:12 +08:00
@jasonyang9
@leo108
@busier #10
这里应该是我写错了,实际上我连接是用的私钥

我知道是咋回事了,我在 Windows 上使用 ssh-copy-id 写入服务器的时候,这里好像有编码错误,导致我写入服务器
authorized_keys 的值和我本地密钥的值不一致,真坑呀,我手动复制粘贴是可以的

windows 应该默认是不支持 ssh-copy-id 的,我从网上找了个命令 copy 了一下,没想到有这个问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/962357

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX