日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

VSCode的连Linux远程开发碰到的坑解决

發布時間:2024/4/18 linux 69 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VSCode的连Linux远程开发碰到的坑解决 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

安裝Remote-SSH并配置
首先打開你的VSCode,找到Extensions,搜索Remote,下載Remote-Developoment插件,會自動安裝其他的Remote插件,其中會包含Remote-SSH:

進入設置,搜索ssh,找到并選中拓展中的Remote-SSH中的ShowLoginTerminal選項,因為在連接的時候,終端會讓你輸入yes或者密碼等

接著,需要配置你的Linux服務器地址信息,按CTRL+SHIFT+P,搜索ssh,找到Open Configuration File選項


點那個配置圖標,選擇一個ssh_config


在ssh_config里輸入目標機器信息:

# Read more about SSH config files: https://linux.die.net/man/5/ssh_config
Host alias
? ? HostName 120.xx.xx.xxx
? ? User root
Host ubuntu_srs
? ? HostName 192.xxx.xx.xx
? ? User yu
? ? IdentityFile ?C:\Users\xxxx\.ssh\id_rsa

Linux安裝OpenSSH-Server和配置
Ubuntu
// 先卸載
sudo apt-get remove openssh-server
// 安裝
sudo apt-get install openssh-server
?
//重啟sshd服務
sudo service ssh --full-restart
//自動啟動
sudo systemctl enable ssh
CentOS
//安裝
yum install -y openssl openssh-server
?
//重啟sshd服務
systemctl restart sshd.service
?
//自動啟動
systemctl enable sshd
編輯配置文件
備份配置文件

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup
編輯配置文件

sudo vim /etc/ssh/sshd_config
配置文件中添加如下配置:
端口可以自定義


使用密碼登錄

保存后,重啟sshd服務器,重啟命令上面已給出。

使用密碼連接SSH
找到你配置的Linux服務器:

輸入密碼,再回車:

然后打開文件夾即可開始編寫代碼:

使用CTRL + SHIFT + ~可以調出終端,就可以在終端操作命令,打開文件就可以寫代碼了。

使用密鑰免密碼登錄
客戶端配置
確保本地Windows操作系統已經安裝了ssh
生成SSH秘鑰對 :

ssh-keygen -t rsa -b 4096?
(-b 4096表示生成的rsa秘鑰對的長度是4096個bit) 在輸入該指令后,會讓我們指定秘鑰文件的生成目錄,可以直接回車跳過,生成的目錄在c:\user\WINDSUN\.ssh這個目錄下生成:id-rsa和id-rsa.pub兩個文件, 第一個是私鑰文件,第二個是公鑰文件,用戶名稱是你自己的電腦用戶名

服務器端配置
檢測ssh服務是否啟動

netstat -ntlp | grep ssh
修改配置文件

vim /etc/ssh/sshd_config
這里最重要的是我們要把PubkeyAuthentication配置為yes允許使用基于密鑰認證的方式登錄。
最后,將客戶端的公鑰id-rsa.pub文件上傳到對應用戶根目錄的.ssh文件夾下,進入.ssh中將公鑰的內容拷貝到authorized_keys文件中

cp id_rsa.pub authorized_keys
然后設置相應文件的權限

chmod 700 .ssh
chmod 600 .ssh/authorized_keys
VS的Remote-SSH插件配置
設置vscode的Remote - SSH插件配置文件:

Host Aliyun
? ? HostName X.X.X.X
? ? User XXX
? ? IdentityFile ?C:\Users\WINDSUN\.ssh\id_rsa
遇到的問題
cound not establish connection to "ubuntu". Connecting was canceled

可以用命令行: ?ssh root@192.12.x.x ? 密碼登錄試試,我這邊發現是公鑰少了個字符

如果報管道錯誤,可能是以下問題

你的Linux服務器的ssh配置有問題,通過修改配置測試是否解決問題。
刪除在服務器上創建的“ .vscode-server”目錄。這是在主目錄中創建的隱藏目錄(您可以使用“ ls -la”顯示我相信的所有文件)。可能是一些不正確的數據被緩存在那里,因此刪除目錄將使您的情況更加整潔。刪除后,可以嘗試通過vscode上的remote-ssh重新連接。
如果還是不行,可以嘗試重新使用ftp將本地公鑰上傳到Linux上,然后將其復制到authorized_keys文件中,設置權限,重啟SSH服務器,重新連接
注意事項
在使用公鑰第一次連接到Linux時候,可能會讓你輸入密碼,連接完成后,會在你的用戶.ssh目錄中中生成一個文件known_hosts,這個目錄中還有公鑰和私鑰id-rsa.pub和id-rsa,然后將公鑰上傳到服務器上,重新重復上面的復制到.ssh/authorized_keys,并且重新設置權限,再重新嘗試連接到Linux,就不需要再輸入密碼了

開始調試
File -> Open Folder

選擇服務器上的目錄:

開始調試之前,在遠程機器安裝C++插件:

點調試圖標,讓你創建launch.json

選擇C++(GDB/LLDB)

這里我遇到了個錯誤:

Unable to create 'launch.json' file inside the '.vscode' folder (Unable to write file 'vscode-remote://ssh-remote+ubuntu_srs/opt/srs.oschina/trunk/.vscode/launch.json' (NoPermissions (FileSystemError): Error: EACCES: permission denied, mkdir '/opt/srs.oschina/trunk/.vscode')).

原因是我的目錄在opt底下,用的用戶又不是root,所以沒有權限,解決方式是把代碼放到自己用戶目錄下,或者用root用戶

解決后再點,生產一個launch模板文件,修改一下:

{
? ? // Use IntelliSense to learn about possible attributes.
? ? // Hover to view descriptions of existing attributes.
? ? // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
? ? "version": "0.2.0",
? ? "configurations": [
? ? ? ? {
? ? ? ? ? ? "name": "(gdb) Launch",
? ? ? ? ? ? "type": "cppdbg",
? ? ? ? ? ? "request": "launch",
? ? ? ? ? ? "program": "/opt/srs/srs4/trunk/objs/srs",
? ? ? ? ? ? "args": ["-c","/opt/srs/srs4/trunk/conf/srs.conf"],
? ? ? ? ? ? "stopAtEntry": false,
? ? ? ? ? ? "cwd": "${workspaceFolder}",
? ? ? ? ? ? "environment": [],
? ? ? ? ? ? "externalConsole": false,
? ? ? ? ? ? "MIMode": "gdb",
? ? ? ? ? ? "setupCommands": [
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? "description": "Enable pretty-printing for gdb",
? ? ? ? ? ? ? ? ? ? "text": "-enable-pretty-printing",
? ? ? ? ? ? ? ? ? ? "ignoreFailures": true
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ]
? ? ? ? }
? ? ]
}

另幾篇文章:

Permission denied (publickey):

https://www.jianshu.com/p/14027e35b900

ssh: permission denied (publickey):

https://blog.csdn.net/xbw12138/article/details/72773993

SSH權限被拒絕(publickey):

https://ubuntuqa.com/article/1193.html

Ubuntu通過XShell連接,解決Permission denied (publickey)報錯:

https://blog.csdn.net/Liucheng417/article/details/80092087

NO.37——處理ubuntu的的SSH連接上的Permission denied(publickey):

https://blog.csdn.net/ghl1390490928/article/details/86600312

ubuntu下Could not load host key: /etc/ssh/ssh_host_rsa_key:

https://blog.csdn.net/qq_41917456/article/details/104671359

總結

以上是生活随笔為你收集整理的VSCode的连Linux远程开发碰到的坑解决的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。