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.permitPtyAllocation为true、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




