V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
CaptainD
V2EX  ›  问与答

ssh 无法使用密钥登陆

  •  
  •   CaptainD · 2023-08-04 11:38:26 +08:00 · 1040 次点击
    这是一个创建于 470 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我按照以下步骤进行 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

    这是怎么回事

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

    本地连 ssh -vvv 看服务端和客户端都干了啥
    CaptainD
        3
    CaptainD  
    OP
       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
        4
    mangoDB  
       2023-08-04 12:03:12 +08:00
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
    CaptainD
        5
    CaptainD  
    OP
       2023-08-04 12:55:49 +08:00
    @mangoDB 你看我的描述,已经配置过了
    busier
        6
    busier  
       2023-08-04 13:55:41 +08:00
    “key 名为 server-test”!

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

    ssh -i 应该导入 private key

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

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

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

    windows 应该默认是不支持 ssh-copy-id 的,我从网上找了个命令 copy 了一下,没想到有这个问题
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2661 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 04:20 · PVG 12:20 · LAX 20:20 · JFK 23:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.