網站首頁 編程語言 正文
過往經驗總結
注:筆者寫本文的目的不是完整細致地描述連接的全過程,而是記錄當中遇到的現象、問題,及為什么會產生這個問題的分析。所以部分過程會省略,或者默認讀者都是很熟悉各種操作的。
使用ssh遠程連接,要獲知目標主機的ip地址,并使用正確的密碼或密鑰。
筆者之前曾嘗試過用不同的工具來連接服務器。 其中,
- putty和xshell本身就是支持多種連接協議的連接工具。 用它們連接很方便。輸入密碼就是嘗試建立連接時輸入用戶名之后再輸;輸入密鑰就是要找到該工具對應的配置入口。一些字體大小、發送請求時長之類的參數設置也可以直接在工具界面找到。
- idea之類的IDE現在也有了remote ssh 的功能。這個ssh是IDE自帶的。 它連接簡單,傻瓜式操作。只需要在
新建項目
界面,點擊遠程連接
的按鈕,一步步往下就成功了。 但它有個特點,就是有點卡。這和它處理文件的機制有關系,后面會細說。
關于vscode
其實vscode本質上只是一個編輯器,它強大的功能依托于各種可安裝的插件。 很多插件本質上就是將 已有
的功能在vscode中以另一種形式展現出來。
舉個例子,小明還沒有在本機安裝git,那他安裝的和git有關的插件是不會生效的。同理,vscode的ssh本質上是將電腦已有的ssh服務在vscode中呈現。如果連接不上,要么是插件本身有問題(基本排除,真有問題應該很多人給差評了),要么是本機的ssh服務
有問題,要么是參數設置
有問題。
與ssh有關的兩個配置文件
.ssh/config
這是對單個ssh連接的配置信息,格式可參照如下:
Host <連接的主機名(可以自己取>
? HostName <主機ip地址>
? User <連接的用戶>
? IdentityFile <認證文件,也就是密鑰文件的路徑>
settings.json
這是對vscode的全局配置,其中也可以加入ssh相關的內容,比如設置使用的ssh服務路徑。
報錯解決:ssh連接時提示管道不存在
問題
網上說是win10自帶的openssh的問題。
我在cmd上嘗試過直接使用該工具,發現會提示私鑰文件權限太大,故禁止連接。
由此確認是本機ssh服務的問題
。
解決方案
方案一:使用git中的ssh作為替代
- 找到該ssh的位置:在git中用
whereis ssh
命令。(windows則進入git-bash來敲命令) - 在
settings.json
中加入如下一行:"remote.SSH.path":<git路徑+git中ssh路徑的拼接體>,
保存后重啟vscode。
方案二:修改私鑰文件權限
網上有博客文章介紹過具體操作,總結來說就是鼠標點按鈕一步步找到入口然后設置目標主機對文件的訪問權限,同時禁止其他用戶的權限。不過我沒有用這種方式,因為我對windows自帶的openssh其實是不太放心的。
各方式遠程連接項目文件的性能對比
現象
- 同時打開多個putty/xshell終端以顯示項目文件沒問題
- 同時用多個vscode窗口打開項目也沒問題
- 同時用IDE打開兩個及以上項目文件會導致服務器死機
- 一個ide,再來一個vscode也不行
原因分析
- IDE比較耗性能,vscode更輕量
- 兩者對文件的同步方式不同。 當連接中斷時,vscode上顯示的當前項目文件也沒有了,但是idea上的還在,只是改了之后不能同步到遠程主機了。這說明,vscode只是將遠程終端上的內容換種形式呈現出來,而idea則是在本地也備份了一份文件。
原文鏈接:https://juejin.cn/post/7195375870591107132
相關推薦
- 2022-06-10 nginx.conf配置文件結構小結_nginx
- 2024-04-07 MyBatis批量插入的五種方式(推薦MyBatis以集合方式批量新增)
- 2022-08-10 淺析python中的set類型_python
- 2022-07-17 Android?studio實現簡單計算器的編寫_Android
- 2023-01-14 GoLang日志監控系統實現_Golang
- 2022-07-17 關于python通過新建環境安裝tfx的問題_python
- 2022-04-22 教你如何解決Nginx禁止ip加端口訪問的問題_nginx
- 2022-09-09 python中.format()方法使用詳解_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支