欢迎光临
我们一直在努力

Windows 免密 SSH 登录 Ubuntu配置全流程(可复用到 VS Code)

一、场景与目标

  • 客户端:Windows(OpenSSH)

  • 服务端:Ubuntu(OpenSSH server)

  • 目标:ssh 用户名@ip(或别名 ssh name)时不再输入密码,改用 SSH Key(publickey)。

二、Windows 端生成 SSH 密钥

1. win+r打开 CMD

2.输入指令

ssh-keygen -t ed25519 -a 64

一路回车采用默认路径(推荐):

  • 私钥:C:\\Users\\lenovo\\.ssh\\id_ed25519

  • 公钥:C:\\Users\\lenovo\\.ssh\\id_ed25519.pub

检查是否生成成功:

dir "%USERPROFILE%\\.ssh"

你应该能看到 id_ed25519 和 id_ed25519.pub。

三、把 Windows 公钥写入 Ubuntu 的 authorized_keys

最稳的办法是一条命令追加公钥(会让你输入一次 Ubuntu 密码,这是最后一次):

type "%USERPROFILE%\\.ssh\\id_ed25519.pub" | ssh cqt@192.168.1.114 "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

这条命令做了四件事:

  • 创建远端 ~/.ssh

  • 设置目录权限 700

  • 追加公钥到 ~/.ssh/authorized_keys

  • 设置文件权限 600

  • 四、在 Windows 配置 SSH 别名(推荐)

    1.编辑配置文件:

    notepad "%USERPROFILE%\\.ssh\\config"

    原始配置文件如下:

    写入(注意ccslab需要自己命名):

    Host ccslab
      HostName 192.168.1.114
      User cqt
      Port 22
      IdentityFile ~/.ssh/id_ed25519
      IdentitiesOnly yes

    这样以后你只需要:

    ssh ccslab

    五、 验证免密是否真正生效(严谨验收)

    1. 直接登录验证

    ssh ccslab

    连接成功:无需密码

    2. 用 -v 看认证方式(最权威)

    ssh -v ccslab

    你要看到类似关键行:

    • Offering public key: … id_ed25519

    • Server accepts key: …

    • Authenticated … using "publickey".

      pasted

    出现这句就等于“盖章”:确实是密钥登录,而不是密码。

    此前我们使用VScode打开每连接都需要密码,现在再重新打开就不用重新输入了。

    六、总结

    1.生成key

    ssh-keygen -t ed25519 -a 64

    2.推公钥到 Ubuntu:

    type "%USERPROFILE%\\.ssh\\id_ed25519.pub" | ssh cqt@192.168.1.114 "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

    3.配置别名:

    在新电脑 CMD 执行:

    notepad "%USERPROFILE%\\.ssh\\config"

    然后替换为:

    Host ccslab
      HostName 192.168.1.114
      User cqt
      Port 22
      IdentityFile ~/.ssh/id_ed25519
      IdentitiesOnly yes

    4.验收

    ssh -v ccslab

    七、Windows系统免密登录同一个Ubuntu系统多个账户

    1.在 Windows 上复制你的公钥内容

    type "%USERPROFILE%\\.ssh\\id_ed25519.pub"

    把输出整行复制下来(以 ssh-ed25519 开头那行)。

    可以看到公钥为:

    ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIuqok83DZM1iuj5c/iLz8cZryk7YoPe7ZJ3IUO+CJxO lenovo@LAPTOP-75N2RIOM

    2.免密登录到 Ubuntu(cqt)

    ssh cqt@192.168.1.114

    3.在 Ubuntu 上切到 zwj 并配置 authorized_keys

    3.1切换账号

    sudo -iu zwj

    输入mkdir -p ~/.ssh

    mkdir -p ~/.ssh

    输入chmod 700 ~/.ssh

    chmod 700 ~/.ssh

    输入nano ~/.ssh/authorized_keys

    nano ~/.ssh/authorized_key

    4.编辑授权公钥列表文件

    将公钥完整复制过来

    5.输入其它指令并退出

    输入chmod 600 ~/.ssh/authorized_keys

    chmod 600 ~/.ssh/authorized_keys

    6.回到 Windows 测试 zwj 免密登录

    不再需要登录密码

    赞(0)
    未经允许不得转载:171主机测评 » Windows 免密 SSH 登录 Ubuntu配置全流程(可复用到 VS Code)
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址