大型程序常常會運行在性能強勁的服務器上,但是此時程序的調試又成了難辦的事情,於是產生了遠程調試的需求,本文介紹WingIDE遠程調試配置方法。
環境描述
-
WingIDE 版本需求 6.++/ 7.++ ,我的是 7.2.0
-
本地操作系統 Win10
-
遠程服務器操作系統 Ubuntu 16.04
-
安裝 putty
-
解決方案:使用ssh協議通信,實現遠程調試
環境配置
安裝SSH服務
查看服務是否安裝:
sudo ps -e |grep ssh
返回帶有 sshd 的條目即爲已經安裝
$ ps -e |grep ssh
37 ? 00:00:00 sshd
16013 ? 00:00:00 sshd
16588 ? 00:00:00 sshd
否則安裝SSH服務
sudo apt-get install openssh-server
生成SSH密鑰對
在本地Win10(運行wingIDE的環境)使用ssh-keygen生成SSH密鑰
$ ssh-keygen -t rsa
此時在 C -> Users -> Admin(用戶名) -> .ssh 文件夾下會生成
id_rsa
和id_rsa.pub
兩個密鑰文件,其中id_rsa
爲私鑰,無論如何不能交給別人。
遠程主機配置SSH密鑰
將剛剛生成的公鑰文件
id_rsa.pub
複製到遠程主機~/.ssh
文件夾中,並添加到~/.ssh/authorized_keys
裏。假設你的
id_rsa.pub
文件在.ssh
文件夾中而且名稱爲rsa_temp.pub
cat ~/.ssh/rsa_temp.pub >> ~/.ssh/authorized_keys
rm ~/.ssh/rsa_temp.pub
此時你的本機Win10系統ssh連接遠程主機已經不再需要輸入密碼進行身份驗證。
可以使用ssh命令測試是否配置成功,過程中詢問是否繼續連接,輸入
yes
即可:
ssh -p 3722 [email protected] #-p爲端口 一般來說ssh常用端口默認是22
----->
The authenticity of host '[192.168.10.80]:3722 ([192.168.10.80]:3722)' can't be established.
ECDSA key fingerprint is SHA256:qCIsaqEa6wNy0daSgBxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[192.168.10.80]:3722' (ECDSA) to the list of known hosts.
Welcome to Ubuntu 16.04.6 LTS (GNU/Linux 4.4.0-142-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
Last login: Thu May 14 08:20:47 2020 from 192.168.10.213
* Starting OpenBSD Secure Shell server sshd [ OK ]
root@fc6fa7bb6824:~#
此時我們已經可以用SSH連接兩個操作系統,即已經完成了理論層面的配置,接下來進入具體操作階段。
遠程調試配置
此處解釋一下,WingIDE在連接遠程服務器時需要配置連接信息,而這個信息可以在putty中保存,也就是說,只要putty中保存的參數可以連接成功,那麼這套配置就可以用於wingIDE的遠程調試。
私鑰文件id_rsa轉換成putty的ppk格式
putty需要ppk格式的私鑰文件,生成方法如下:
- 運行puttygen (在putty同位置文件夾內)
- 選擇
Conversions
菜單項中的Import key
選項:
- 選擇生成的id_rsa文件
- 在puttygen的界面上點擊
Save private key
按鈕就可以把私鑰轉換爲ppk的格式了(不要點Generate
)
在putty配置遠程連接信息
打開putty
- 配置 Session :
主要配置IP和端口號,在Saved Sessions裏配置可以區分的名字,之後供WingIDE調用
- 配置 Connection-Data選項卡,在自動登錄用戶名處填入需要自動登錄的用戶名(我的是root)
- 配置 Connection-SSH-Auth選項卡,瀏覽選擇剛剛生成的私鑰ppk文件:
- 回到Session,點擊
Save
保存當前配置到test_3722
中:
- 此後每次打開putty雙擊我們的
test_3722
即可連接到遠程服務器:
配置WingIDE
距離成功僅一步之遙。
打開WingIDE, Project -> New Project
其中 Identifier 爲該工程的名稱, Host Name爲我們剛剛保存的Putty名稱,點擊
OK
。
- 此時可以選擇保存工程,也可以一會再說
- 在遠程的默認python路徑往往不是我們需要的,我的常用python在conda的一個自建的環境中,可以指定其爲wingIDE的默認遠程python環境:
- 隨後一路OK,出現此對話框說明配置成功:
- 重啓python shell 可以在本地看到遠程的python shell:
- 可以簡單通過操作系統驗證是否配置成遠程python
- 在project中可以加入遠程的工程
可以本地修改遠程代碼,並運行調試: