《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 解決方案 > 如何讓計算機工作環境更便捷?幾行簡單的命令即可

如何讓計算機工作環境更便捷?幾行簡單的命令即可

2019-04-24
關鍵詞: 自動化 網關機器 SSH

作為長期從事數據科學相關工作的人,作者很喜歡便捷的工作環境,并為此探索出來一些小技巧。通過這些技巧,可以將日常一些重復性或者枯燥的簡單工作變得「自動化」,使計算機的工作環境更加友好。

過去幾年里,我一直從事數據科學/研究項目,本科就做了一些與這個行業相關的工作,現在是研究生在讀,也在做這方面的研究。作為一個喜歡便捷環境的人,我總是喜歡改進我的工作方式,將日常的枯燥過程變得「自動化」。在這篇文章中,我將描述如何使環境更便于使用。


我使用的設置包含以下組件:


個人電腦(Linux 發行版)

網關

遠程服務器

微信圖片_20190424222553.jpg


由于我研究的項目計算量巨大,筆記本電腦無法負擔。因此,我需要這些機器輔助我。出于安全原因,遠程服務器無法直接訪問,這意味著它們只能由網關機器訪問。


連接服務器的基本方法是首先將 ssh 連接到網關,然后將 ssh 連接到服務器,每次連接時都需要輸入用戶名和密碼。輸入一遍又一遍是相當麻煩的。現在我將介紹如何使用單個命令輕松連接到兩個服務器。


充分利用 SSH


關于 SSH


SSH(Secure Shell)是一種安全協議,允許用戶控制他們連接的服務器。使用 ssh 連接到遠程服務器的常用方法是使用以下命令:ssh user@host,然后獲得一個密碼提示符。在這篇文章中,我不會詳細介紹 ssh 的工作原理,只是利用 ssh 基本的使用知識。


無需密碼即可連接


首先創建一個認證密鑰,并將公共密鑰傳輸到我們想連接的服務器。我們從設置第一個連接開始——從筆記本電腦到網關。


我們將使用一個名為 ssh-copy 的小軟件。它為我們完成所有工作,我們需要做的就是在終端中鍵入以下命令:


ssh-keygen -t rsa  # create an SSH key, if needed.
ssh-copy-id -i ~/.ssh/id_rsa.pub user@host


Linux 用戶應該已經安裝了這個軟件。

Mac 用戶需要通過命令 brew install ssh-copy-id 安裝 ssh-copy 工具。


ssh-copy-id 命令將 SSH 密鑰復制到服務器,如果需要,創建相應的 ssh 文件夾,最后將公鑰作為授權密鑰添加到服務器的.ssh / authorized_keys 文件中。


如果由于某種原因這不起作用,只需復制粘貼以下命令,這基本就是 ssh-copy 的作用:


打開終端并運行以下步驟:


生成一對認證密鑰。系統將要求你輸入任意密碼。ssh-keygen -t rsa

在遠程計算機上創建一個 .ssh 文件夾(如果已存在則無需創建)ssh user@host mkdir -p .ssh

將之前生成的公鑰添加到遠程計算機(這應該是最后一次輸入密碼)。cat .ssh/id_rsa.pub | ssh user@host 'cat >> .ssh/authorized_keys'


OK!從現在開始,你無需密碼即可輕松訪問服務器。


ssh user@host


要從網關連接服務器,遵循相同的步驟(如果尚未配置)。


方便的 SSH


現在要做的是進階版。與每次 ssh 都使用完整主機名+用戶名不同,我們可以使它更方便——無論是網關或代理機器。


在本地計算機的~/.ssh/config 文件下插入以下內容:


Host gate
 HostName [gateway.name]
    User [user]

Host work1
 HostName [machine.name]
 user [user]
 ProxyCommand ssh gate nc %h %p


還有一個有用的配置參數名為「IdentityFile」,它在處理多個公鑰/私鑰對時非常有用。假設你除了個人賬戶外,有一個 github 的工作帳戶。那你就需要另一個公鑰-私鑰對,但你還是需要一個方便的接口。以下是在配置文件中進行設置的示例:


Host company-github
    User git
    HostName company.github.com
    IdentityFile ~/.ssh/github.comp.key


每個 ssh 連接將使用匹配的密鑰進行連接。


為了使每個服務器輕松連接,我們可以以類似的方式添加所有遠程服務器。


現在,只需要簡單的命令 ssh gate 或 ssh work1,就可以直接連接到網關或 work1 服務器,無需任何密碼或其它連接。


隧道(Tunneling)

微信圖片_20190424222620.jpg


現在我們可以方便地訪問遠程服務器,然后可以使用隧道來實現對計算機中服務器資源的無縫訪問。這樣,我們可以在遠程機器(具有大量內存)上運行 Jupyter notebook,并在瀏覽器上與它進行交互。它可以實現如下功能:


關閉計算機,并保持 notebook 在服務器上運行。

從另一臺計算機也可以打開和訪問同一 notebook。

保持模型可在遠程服務器上加載。即加載一次即可永久訪問(或直到管理員重啟)。


例如,如果我們想在端口 9100 上打開服務器 work1 上的 notebook,可以使用以下命令打開到端口 9200 上的計算機的隧道:


*ssh* *-N* *-f* *-L* *localhost*:9200:localhost:9100 *work1*


有趣的隧道


現在你已經了解如何設置隧道,你可以一直使用這個技巧(至少我一直這樣做)。現在以 Jupyter notebook 和 Tensorboard 為例做一個演示。Tensorboard 服務器不會消耗很多資源,但 notebooks 有時會。由于不同的項目使用的機器不同(為平衡負載),因此會使用不同的隧道,所以我有時不記得哪個端口用于什么應用,更不用說在哪個服務器上了。


最終,我們轉向自己的機器,唯一控制的變量是端口號,而這些數字很快會被遺忘。我最近找到了一部分解決方案。我沒有在 localhost:xxxx 上打開應用程序,而是生成了新的域名,這些域名只轉發到 localhost 主機。這雖然沒有解決端口問題,但現在每個應用程序都有自己的名稱,沒有混淆,在使用一兩次后,現代瀏覽器就會記住端口,所以你只需記住你為每個程序起的名稱即可。


要進行域轉發,請執行以下操作:


使用 sudo [vim|nano|...] /etc/hosts 打開/etc/hosts 文件

你應該在某處(可能在頂部)發現這一行:127.0.0.1 localhost

復制該行,使用你為應用程序取的名字替換 localhost 的名稱(例如,tensorboard)。


現在你可以在 tensorboard:8100 上找到 tensorboard 應用。


但端口問題仍然沒有解決,歡迎提出建議。


更多便捷技巧


保持 SSH 打開


如果你已經使用隧道一段時間,你可能發現如果閑置幾分鐘后,隧道往往在不工作時都會斷開連接。如果你同時在處理好幾件事,而沒有一直使用隧道,那這個重復連接的工作真的很煩人。通過在 ssh 配置文件中添加一行簡單語句,這個問題就可以很容易解決。這樣,每隔 x 秒,一個'喚醒(sign-of-life)'信號會被發送到服務器上。在本地計算機上,編輯 /etc/ssh/ssh_config 文件(帶有 sudo)并在 Host *行后輸入以下行:


ServerAliveInterval 120


這適用于所有 ssh 連接。如果不想所有的 ssh 都保持連接,則可以通過給~/.ssh/config 配置文件添加相同的行來僅連接特定的 ssh。配置如下:


Host gate
 HostName gateway.name
 User user
 IdentityFile ~/.ssh/gateway
 ServerAliveInterval 120


Autossh


現在,隧道在不工作時也不會關閉,事情看起來很順利。但當你準備睡覺(人總要休息啊)時,你就會暫停/休眠你的電腦(不是關機)。第二天,你想重新開始工作,你在本地計算機上準備打開隧道時發現,...... 連接已關閉,你需要重新打開它。這也讓人心累不是嗎?幸運的是,這也有解決方案!


關于 autossh:http://www.harding.motd.ca/autossh/


這個絕妙的程序將保證你的 ssh 連接一直開啟,除非關閉計算機。只要沒有關機,ssh 就一直是連接著的。例如,你可以將計算機置于休眠狀態,斷開 Wifi 等連接,但一旦重新聯機,此程序將重新為你連接 ssh。


通過運行以下行來安裝 autossh:


sudo apt-*get* install autossh


現在運行以下命令:


*autossh* *-M* 20000 *-N* *-f* *-L* *localhost*:9201:localhost:9100 *work1*


這與我們之前看到的命令非常相似,除了命令名稱(duh)和 -M 20000 標志(這是顯示器所在的端口)。


IntelliJ 集成


在 Pycharm 專業版中,有一個很好的功能,即可以連接遠程服務器并直接在上面工作。你可以在自己的計算機上編寫代碼,在遠程服務器上運行代碼,或者在遠程服務器上完全同步整個存儲庫。


interlliJ 界面會不時變化,但主題不變。我將介紹特定版本 - V. 2018.1.4 的步驟。


進入 Pycharm 的設置界面

構建,執行,部署 - >部署

單擊綠色+,創建新的部署設置

輸入相關信息(名稱、主機、端口(通常為 22)、根路徑和用戶名)


現在右鍵點擊項目文件夾,在部署鍵下,你可以上傳、下載項目或使其與遠程位置同步(可以設置快捷鍵)。


使用遠程解釋器:


進入項目設置欄

在項目解釋器標記下(在項目解釋器選項附近,有一個小齒輪按鈕)。單擊它,然后點擊「添加」。

在左側菜單中,單擊 SSH 解釋器

單擊「現有服務器配置」選項,使用我們之前創建的部署配置。

選擇遠程解釋器(例如 anaconda / python)

... 全部完成!


本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产日韩综合| 在线视频欧美精品| 国产精品啊啊啊| 欧美激情一区二区三区四区| 久久久久在线| 久久国产66| 久久国产福利国产秒拍| 欧美一区观看| 午夜日韩av| 欧美一区1区三区3区公司| 先锋影音久久久| 香蕉久久一区二区不卡无毒影院 | 亚洲毛片网站| 亚洲乱码国产乱码精品精天堂 | 久久尤物视频| 久久亚洲精品一区二区| 久久这里有精品15一区二区三区| 久久久久久久999精品视频| 久久成人免费日本黄色| 久久国产精品久久w女人spa| 欧美中文字幕视频| 久久免费视频一区| 美女亚洲精品| 欧美日韩国产综合视频在线观看| 欧美日韩视频不卡| 国产精品你懂得| 国产色综合久久| 韩国视频理论视频久久| 在线看不卡av| 亚洲精品久久久久久久久| 一本色道久久综合亚洲精品小说 | 国产一区二区欧美日韩| 激情欧美一区二区| 亚洲国产精品欧美一二99| 亚洲毛片在线免费观看| 中文欧美字幕免费| 性欧美1819sex性高清| 久久精品一区二区三区中文字幕| 最新国产成人在线观看| 9l国产精品久久久久麻豆| 亚洲免费一在线| 久久免费高清| 欧美日韩国产综合视频在线观看中文| 国产精品久久久久久久久久久久久久| 国产日韩欧美三区| 亚洲第一在线综合在线| 在线亚洲精品| 久久成人国产| 99视频在线精品国自产拍免费观看| 亚洲直播在线一区| 久久一区二区三区国产精品| 欧美精品色综合| 国产日韩亚洲欧美| 亚洲高清在线观看| 亚洲夜间福利| 91久久黄色| 亚洲欧美日韩国产一区| 老司机免费视频一区二区| 欧美日韩人人澡狠狠躁视频| 国产欧美日韩一区二区三区在线观看| 亚洲电影在线| 午夜电影亚洲| 亚洲理论在线观看| 久久精品国产77777蜜臀| 欧美喷潮久久久xxxxx| 国产乱码精品一区二区三区av| 在线免费观看日本欧美| 亚洲一二三四久久| 亚洲精品一区二区三区av| 欧美一区二区精品久久911| 欧美成人午夜激情视频| 国产欧美一区二区三区另类精品 | 久久国产精品色婷婷| 欧美精品1区2区| 国产一区二区在线免费观看| 一区二区三区蜜桃网| 亚洲国产婷婷香蕉久久久久久| 亚洲综合成人在线| 欧美成人免费全部| 国产一二精品视频| 亚洲中字在线| 亚洲一区二区久久| 欧美劲爆第一页| 激情五月***国产精品| 亚洲一二三区视频在线观看| 日韩视频不卡中文| 久久午夜羞羞影院免费观看| 国产精品呻吟| 一区二区三区|亚洲午夜| 亚洲日本va在线观看| 久久精品亚洲精品国产欧美kt∨| 欧美午夜不卡视频| 亚洲国产视频a| 久久精品国产96久久久香蕉| 亚洲女性裸体视频| 欧美日韩国产高清| 亚洲国产综合在线| 亚洲国产综合在线| 久久久噜噜噜| 国产一区二区三区精品久久久| 亚洲一区二区高清视频| 亚洲网址在线| 欧美日产一区二区三区在线观看| 在线国产亚洲欧美| 亚洲国产成人精品久久| 久久精品人人做人人综合| 国产精品三级久久久久久电影| 亚洲美洲欧洲综合国产一区| 亚洲精品永久免费| 欧美xx视频| 亚洲国产精品久久久久婷婷884| 亚洲高清视频一区| 久久蜜桃香蕉精品一区二区三区| 国产欧美日韩视频一区二区三区| 亚洲一区二区在线看| 亚洲欧美一区二区三区极速播放 | 欧美午夜无遮挡| 夜夜嗨av一区二区三区四区| 一区二区三区精品| 欧美片在线观看| 亚洲精品美女在线观看播放| 99www免费人成精品| 欧美久久电影| 99热这里只有精品8| 一区二区三区日韩欧美精品| 欧美日韩一区二区在线| 99国产精品99久久久久久| 一区二区三区久久精品| 欧美日韩一区二区三区在线看| 日韩视频免费观看高清完整版| 亚洲视频在线免费观看| 亚洲欧美日韩人成在线播放| 国产精品五月天| 欧美亚洲在线观看| 久久久久久综合| 在线播放日韩欧美| 亚洲精品色图| 欧美四级在线| 亚洲综合三区| 久久久噜噜噜久久中文字幕色伊伊| 黑人巨大精品欧美一区二区| 亚洲欧洲视频| 欧美日韩高清在线| 亚洲色无码播放| 午夜精品久久久久久久久| 国产亚洲在线观看| 最近中文字幕日韩精品| 欧美日本一区| 午夜激情综合网| 老巨人导航500精品| 亚洲三级网站| 午夜精品视频| 好吊日精品视频| 99视频热这里只有精品免费| 国产精品久久久久99| 欧美在线免费一级片| 欧美国产日韩亚洲一区| 一本大道av伊人久久综合| 欧美综合激情网| 亚洲国产视频一区二区| 亚洲一区二区黄色| 国内精品久久久久久久影视麻豆| 亚洲精品中文字幕有码专区| 亚洲女人av| 久久精品国产欧美亚洲人人爽| 狠狠爱综合网| 一区二区av在线| 国产亚洲va综合人人澡精品| 日韩亚洲在线观看| 国产美女一区二区| 日韩午夜免费| 国产手机视频精品| 99视频国产精品免费观看| 国产欧美精品在线观看| 亚洲精品一品区二品区三品区| 国产精品日韩欧美| 亚洲精品在线视频| 国产欧美视频一区二区三区| 亚洲精品影视| 国产三区精品| 亚洲视频1区2区| 一区在线视频| 性8sex亚洲区入口| 亚洲人成亚洲人成在线观看| 久久国产精品一区二区三区四区| 亚洲人屁股眼子交8| 久久久久亚洲综合| 中文在线不卡| 欧美成人免费小视频| 香蕉乱码成人久久天堂爱免费| 欧美精品一区在线播放| 欧美一级二区| 欧美午夜一区二区福利视频| 亚洲精品国产欧美| 国产一区二区三区网站| 亚洲欧美日韩另类| 99在线精品视频| 欧美激情精品久久久久久久变态| 欧美在线观看网址综合| 国产精品久久激情|