如何解决vscode配置免密登录后仍需要输入密码

文章讲述了在Linux服务器重装后,VSCode的SSH免密登录失效,原因是.ssh文件夹权限设置不当。解决方法是检查并调整.ssh文件夹(700)和authorized_keys(600)权限,重启VSCode后即可恢复免密连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

vscode 配置免密后仍然需要输入密码

问题:

最近Linux服务器进行了系统重装,导致个人电脑无法连接ssh,原因是个人电脑在第一次连接成功服务器时,会记录一个ip+RSA的秘钥,由于系统重装,Linux服务器的RSA公钥改变,那么相同的ip两者的公钥无法对起来,所以会出现无法连接的问题,删除个人电脑中known_hosts文件中的对应的服务器ip后,可以成功连接到服务器,但是vscode的免密登录却失效了,每次都要重复输入密码,重新生成密钥对也不行,之后查阅官方的ssh 免密登录文档终于发现了问题所在。

原因:

ssh免密登录(也称为密钥登录)出于安全性考虑,对.ssh目录下的文件有着严格的权限要求,有时候我们按照一些教程手动的创建.ssh文件夹以及authorized_keys文件,或者之后手动的对.ssh文件夹中的文件进行了修改,可能会使得文件夹以及其中的文件权限不对,导致ssh使用密钥登录失败。

解决

查看官方文档的免密配置过程,可以发现其中有一步是更改.ssh文件夹和authorized_keys的权限,如下截图所示:
官方文档中配置密钥登录过程
因此,我们可以查看自己服务器上的.ssh文件夹的权限是否为700以及authorized_keys文件的权限是否为600,并通过如下命令更改为对应的权限:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

设置好后,重新启动vscode,原先配置的免密登录就能正常连接而无需输入密码了。

### 配置 VSCode 实现 SSH密码登录到远程服务器 #### 插件安装与环境准备 为了使VSCode能够支持SSH免密登录,需先确认已安装`Remote-SSH`扩展。该工具允许开发者通过SSH协议连接至远程主机并直接在其上开发项目。 #### 本地机公钥生成 对于Windows平台上的本地计算机而言,在开始之前应当利用OpenSSH客户端来创建一对新的RSA加密钥匙对。打开命令提示符或PowerShell窗口,运行如下指令完成此操作: ```bash ssh-keygen -t rsa ``` 上述命令会引导用户指定保存位置以及设置保护短语;通常情况下,默认选项即可满足需求[^1]。 #### 远程服务器端配置 接着转向Linux系统的远程服务器一侧。这里的关键在于把来自本地PC的公共部分——即id_rsa.pub里的内容追加进目标账户下的`.ssh/authorized_keys`文件内。考虑到跨操作系统间可能存在换行符差异的问题,推荐做法是从Windows上传整个公钥文件而不是单纯依赖剪贴板传文字串[^2]。 假设已经具备适当权限,则可通过SCP(Secure Copy Protocol)方式传送所需材料: ```bash scp ~/.ssh/id_rsa.pub user@remote:/tmp/ ``` 随后登录远端机器并将接收到的数据附加到授权列表里去: ```bash cat /tmp/id_rsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys ``` #### 修改VSCode中的SSH配置 最后一步是在Visual Studio Code内部调整相应的访问参数。编辑位于用户主目录内的.ssh/config文档,加入下面所示条目以便定义好待连入的目标节点信息: ```plaintext Host ubroot HostName 1xx.xx.xx.xx User root ForwardAgent yes Port 22 IdentityFile ~/.ssh/id_rsa ``` 此处需要注意替换实际IP地址以适配具体场景,并且确保所指明的身份验证私钥路径有效无误。 一旦以上步骤均已完成,记得回到IDE界面按下F1键调出命令面板,选取“Remote-SSH: Connect to Host...”,从中挑选新近设立好的入口尝试建立链接。如果一切顺利的话,今后便不再需要每次都手动输入凭证了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值