You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Ubuntu 22.04下VS Code Remote-SSH连接服务器失败求助

解决Ubuntu 22.04下VS Code Remote-SSH连接失败(TTY相关错误)

问题背景

在Ubuntu 22.04系统中使用VS Code Remote-SSH插件连接远程服务器时,输入密码回车后连接失败,Windows环境下连接正常。已尝试修改remote.SSH.permitPtyAllocationtrue、SSH配置添加RequestTTY yes、更换端口,均无效。日志关键报错:

[21:30:30.489] stderr> Pseudo-terminal will not be allocated because stdin is not a terminal.
[21:30:39.944] stderr> Authenticated to [REMOTE_IP] ([REMOTE_IP]:2222) using "password".
[21:30:40.735] stderr> the input device is not a TTY
[21:30:40.748] > local-server-1> ssh child died, shutting down 
[21:30:40.762] Failed to parse remote port from server output

可行解决方案

1. 调整VS Code终端配置

确保VS Code使用系统原生终端:

  • 打开VS Code设置,搜索terminal.external.linuxExec
  • 将值设置为gnome-terminal(Ubuntu默认终端)或xterm,避免使用tmux等可能干扰TTY识别的终端工具

2. 修改SSH配置的TTY强制参数

在本地~/.ssh/config中针对目标服务器替换原有配置:

Host [你的服务器别名]
  HostName [REMOTE_IP]
  Port 2222
  User [你的用户名]
  RequestTTY force
  PermitLocalCommand yes
  LocalCommand stty raw -echo; stty sane

RequestTTY force强制分配TTY,LocalCommand用于调整终端属性,解决输入设备识别异常

3. 重置Remote-SSH插件状态

  • 打开VS Code命令面板(Ctrl+Shift+P),执行Remote-SSH: Kill VS Code Server on Host,选择目标服务器
  • 关闭VS Code,删除本地~/.vscode-server目录(若存在)
  • 重新启动VS Code,尝试重新连接服务器

4. 修复系统终端权限

确保当前用户对终端设备有读写权限:

  • 执行命令查看权限:ls -l /dev/pts/0
  • 若权限不足,临时修复:sudo chmod 666 /dev/pts/0
  • 永久解决:将用户添加到tty组,执行sudo usermod -aG tty $USER,重启后生效

内容的提问来源于stack exchange,提问作者mo gigigko

火山引擎 最新活动