解决Windows 10通过SSH连接Ubuntu 20.04时的“Permission Denied”错误

在使用SSH连接远程服务器时,我们经常可能遇到各种连接错误,其中“Permission denied, please try again”是较为常见的一种。本文将分享一次实际案例的解决过程,帮助你理解如何排查并解决这类问题。

问题描述

在尝试从Windows 10系统通过SSH连接到Ubuntu 20.04服务器时,不断出现“Permission denied, please try again”的错误消息。这类问题通常与SSH认证相关。

错误原因

经过仔细检查,发现问题的根本原因在于SSH配置文件中的用户名不正确。在Ubuntu的命令行界面显示的用户名是jjj@jjjiang,这表明正确的用户名应为jjj,而不是我之前在Windows上配置的jjjiang
在这里插入图片描述

解决步骤

  1. 检查用户名:首先确认Ubuntu系统中有效的用户名,可以通过查看命令提示符或者whoami命令来确认当前登录的用户名。

  2. 修改SSH配置:在Windows系统中,找到用于SSH连接的配置文件(通常位于~/.ssh/config),将用户名从jjjiang更改为jjj
    在这里插入图片描述

  3. 重新连接:修改配置后,重新发起SSH连接尝试。

结果

更正用户名后,再次尝试连接时成功,且连接过程中不再要求输入密码,表明之前的认证问题已经解决。

总结

SSH连接问题很常见,但通过系统地检查配置和认证方式,大多数问题都可以被解决。在遇到“Permission denied”类的错误时,务必先从用户名和密码认证设置入手,这往往是问题的关键所在。

希望这篇文章能帮助你解决SSH连接中可能遇到的问题!如果有更多问题或需要进一步的帮助,欢迎留言交流。

### 配置 VSCode 通过 Remote-SSH 连接Ubuntu 系统进行远程开发 在嵌入式开发中,使用 Linux 环境进行交叉编译和代码调试是常见需求。Visual Studio Code(VSCode)提供了强大的远程开发功能,其中 **Remote-SSH** 插件允许开发者直接连接到远程 Linux 主机,例如运行在虚拟机或云服务器上的 Ubuntu 系统,从而实现无缝的代码编辑、调试和终端操作。 #### 前提条件 1. **本地环境:** - Windows 10 64位系统 - 安装了最新版本的 [Visual Studio Code](https://code.visualstudio.com/) - 已安装 **Remote-SSH** 插件(可在扩展商店搜索并安装) 2. **远程 Ubuntu 系统:** - Ubuntu 版本建议为 18.0420.04 LTS - 已安装 OpenSSH 服务器 - SSH 服务已启动并配置为开机自启 - 可通过局域网或公网访问的 IP 地址 --- ### 操作步骤 #### 一、Ubuntu 端配置 SSH 服务 1. 安装 OpenSSH 服务器: ```bash sudo apt-get update sudo apt-get install openssh-server ``` 2. 启动 SSH 服务: ```bash sudo service ssh start ``` 3. 设置 SSH 开机自启: ```bash sudo systemctl enable ssh ``` 4. 关闭防火墙(可选): ```bash sudo ufw disable ``` 5. 获取 Ubuntu 的 IP 地址: ```bash ifconfig ``` #### 二、VSCode 端配置 Remote-SSH 1. 打开 VSCode,按下 `F1` 键,输入 `Remote-SSH: Connect to Host...` 2. 如果尚未添加主机信息,选择 `Add New SSH Host...` 3. 输入远程连接命令格式: ``` ssh username@remote_ip -A ``` 示例: ``` ssh zhangsz@192.168.149.128 -A ``` 4. VSCode 会提示保存 SSH 配置文件,默认路径为 `~/.ssh/config`,内容如下: ``` Host MyUbuntu HostName 192.168.149.128 User zhangsz ForwardAgent yes ``` 5. 再次执行 `Remote-SSH: Connect to Host...` 并选择刚刚添加的主机名称 `MyUbuntu` 6. 输入远程主机用户的密码,完成身份验证后即可连接成功[^1] 7. 成功连接后,点击左下角的“Open Folder”按钮,选择远程服务器上的项目目录进行开发。 8. 可以使用内置终端(Terminal)运行 bash 命令,如编译、调试等操作。 --- ### 常见问题与解决方法 1. **连接失败提示 `Permission denied`:** - 检查用户名和密码是否正确。 - 确保远程用户具有 `.ssh` 目录,并且权限设置正确: ```bash chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys ``` 2. **无法解析主机名:** - 确认 `HostName` 配置项中的 IP 地址或域名可被解析。 - 检查网络连通性,尝试从本地命令行使用 `ping` 或 `ssh` 测试连接。 3. **VSCode 提示 `Could not establish connection to "Host"`:** - 确保 Remote-SSH 插件已正确安装。 - 更新 VSCode 到最新版本。 4. **每次打开新文件夹都需要重新输入密码:** - 使用密钥认证代替密码登录: - 在本地生成 SSH 密钥对: ```bash ssh-keygen -t rsa -b 4096 ``` - 将公钥复制到远程主机: ```bash ssh-copy-id zhangsz@192.168.149.128 ``` - 修改 `.ssh/config` 文件,添加 `IdentityFile` 指定私钥路径: ``` IdentityFile ~/.ssh/id_rsa ``` --- ### 小结 通过 VSCode 的 Remote-SSH 功能连接Ubuntu 系统,可以极大提升开发效率,尤其是在需要频繁切换本地与远程开发环境的场景下。无论是虚拟机还是云服务器,只要具备 SSH 访问能力,均可轻松实现远程开发与调试。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值