V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
CaptainD
V2EX  ›  问与答

ssh 无法使用密钥登陆

  •  
  •   CaptainD · Aug 4, 2023 · 1642 views
    This topic created in 1002 days ago, the information mentioned may be changed or developed.

    我按照以下步骤进行 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 replies    2023-08-04 14:54:12 +08:00
    lechain
        1
    lechain  
       Aug 4, 2023
    ssh 登录的时候用-vvv 选项看一下 详细信息,看具体发生了什么
    (盲猜一个大概率是你本地 ssh client 没有读取到你的 private key ,要么是路径不对,要么是权限不对,要么是本地客户端配置不对
    dzdh
        2
    dzdh  
       Aug 4, 2023
    /usr/sbin/sshd -D -d -p 2222

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

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

    ssh -i 应该导入 private key

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

    显然这是错误的!
    CaptainD
        11
    CaptainD  
    OP
       Aug 4, 2023   ❤️ 1
    @jasonyang9
    @leo108
    @busier #10
    这里应该是我写错了,实际上我连接是用的私钥

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

    windows 应该默认是不支持 ssh-copy-id 的,我从网上找了个命令 copy 了一下,没想到有这个问题
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2680 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 14:46 · PVG 22:46 · LAX 07:46 · JFK 10:46
    ♥ Do have faith in what you're doing.