題 多個命令提示一個SSH連接?


我需要做很多事情 vim 在我需要SSH進入的遠程服務器上。我發現最好能在桌面上的多個窗口中查看多個文檔,所以為此,我打開兩個或三個SSH會話到遠程服務器。這有點單調乏味,因為我必須多次重新輸入un / pw,我必須確保每個窗口都保持活動狀態以防止自動註銷。

有沒有辦法SSH進入 一旦 然後用不同的終端窗口捎帶它? (我主要使用OSX和Ubuntu)。


4
2017-12-10 19:45


起源




答案:


Screen和tmux為您提供了所需的答案,但為了擴展您的問題,我建議您研究基於SSH密鑰的身份驗證問題,這樣您每次都不需要用戶名和密碼你SSH到你的遠程服務器:-)


5
2017-12-11 00:03



好點子。它通常也更安全 - 請參閱 superuser.com/questions/303358/... - Randy Orrison
(我實際上已經轉移到基於密鑰的身份驗證) - cwallenpoole


另一種可能的替代方法是使用sshfs。

sshfs允許您通過ssh遠程安裝遠程計算機上可訪問的任何目錄,作為計算機上的捲。效果很好。這樣做的好處是,您可以使用遠程計算機上的所有文件,就像它們是本地文件一樣。總的來說,它比屏幕更容易使用 - 您登錄一次,然後您使用遠程文件執行的任何操作就像使用本地文件一樣。

您的另一種選擇就是使用vim通過ssh編輯遠程文件的能力。看這裡: http://vim.wikia.com/wiki/Editing_remote_files_via_scp_in_vim


3
2017-12-11 00:27





不完全是你要求的,但GNU 屏幕 實用程序允許您在一個窗口中擁有多個虛擬終端。它還可以防止連接中斷,因為您可以重新連接到斷開連接的屏幕會話。


2
2017-12-10 19:57



它可能會奏效。我得試試看。 - cwallenpoole


tmux 也是一種選擇(類似於 GNU screen)。它的代碼庫更小更乾淨,它支持並排面板,沒有任何額外的麻煩,在我看來,它使用起來更愉快。屏幕更常見,所以無論如何都值得學習使用。

使用 tmux,只需將其安裝在您要SSH的機器上即可。然後SSH,運行tmux,您現在可以在同一個屏幕上或同一終端上的不同“窗口”(類似於Ubuntu工作區)中運行多個終端或控制台應用程序。嘗試 man tmux 用於控制。


2
2017-12-10 23:35





另一種選擇是vim的內置功能 netrw 插件打開遠程文件。適用於Project插件。

但是為了能夠在ssh上使用任何東西我做的第一件事就是註冊我的ssh密鑰: ssh-copy-id user@host 向主機註冊密鑰並檢查 ssh-agent 正在運行並添加使用的密鑰 ssh-add

我經常這樣做:

diffsplit scp://user@$REMOTE/path/to/dir/%

它將文件區分開來 $REMOTE 主持人 ~user/path/to/dir 與當前打開的文件具有相同的相對名稱。我喜歡vim,雖然我確信它也可以在emacs中使用。


0
2017-12-12 10:45





您可以通過在第一次登錄(設置連接)控制主機並讓後續SSH調用聯繫控制主機並通過主機已經過身份驗證的連接轉發其會話來在單個SSH連接上運行多個SSH會話。

在配置文件中執行以下操作:

Host somehost
    # ~/tmp/sc must exist beforehand and should have mode 0700.
    ControlPath ~/tmp/sc/%h.%p
    ControlMaster auto

ssh_config(5) 手冊頁 有關如何工作的更多細節。


0
2018-04-22 14:03





只是因為還沒有人提到它...如果你的連接足夠快,你可以通過SSH看看X轉發 - 使用 -X 論證 SSH(1)

我每天使用它,使用 MobaXterm (或過去 Xming的)在Windows PC上,訪問本地Linux開發機器 - 雖然主要是為了簡單 xterm 視窗。


0
2018-04-22 14:28