Linux基礎——怎麼樣從 MacOS 或 Linux 通過 SSH 遠程 Linux

1.前言

使用 ssh 遠程操作 Linux 我覺得是我用得最多的一種形式了. 我有一臺 MacBook pro, 但是我的 Linux 電腦硬件稍微好一點. 所以我很多時候是在 Mac 上寫代碼, 用 Apple 的朋友你懂的, 它的屏幕的確不錯, 寫起代碼來眼睛舒服
所以這個教程對需要遠程控制 Linux 的朋友非常有幫助. 能大大提高你的生產率. 並且 SSH 是一種加密的通信通道, 也能保證你的安全.

首先強調一點, 這套”遠程”操控的方法實際上也不是真正的遠程. 這節的教程教你的方法是在一個局域網內遠程操控電腦 (在一個路由器下). 你當然可以把它做成在互聯網中的遠程操控, 不過技術難度上加了一個等級, 如果你想是想人在公司, 卻要操控家裏的 Linux, 有一個方便免費的軟件 (TeamViewer) 可以提供你參考

在家中同一個路由器下, 我們完全可以使用 VNC 或者 SSH 來實現遠程操控 (VNC 就是一個將你 Linux 屏幕輸出到另一臺電腦上的軟件, SSH 則是將你現在電腦的 Terminal 鏈接上 Linux Terminal, 用代碼控制 Linux). 使用 SSH 將會更加順暢 (VNC 輸出桌面圖像會卡), 所以如果你有能力, 那就儘量使用 SSH 吧. 這節內容, 我們來說說怎麼樣使用 SSH

2.給 Linux 安裝 OpenSSH

爲了實現 SSH 功能, 你得確定你的 Linux 上有安裝了 SSH 服務, 通常可能是沒有安裝的. 所以我們將要安裝一個開源的 SSH 工具, 叫做 OpenSSH, 將你的 Linux 變成一個服務器 (就是像你訪問網站一樣訪問你的 Linux). 在 Linux 上打開你的 Terminal, 然後輸入下面這句話安裝 openssh-server. sudo 是使用管理員權限的意思, 所以回車後它可能要求你輸入你用戶密碼.

$ sudo apt-get install openssh-server

如果你之前沒有安裝過, terminal 會提示你將要有多少東西被安裝, 需要你確認. 確認完了以後, 它將會幫你繼續安裝.

3.Mac 或 Linux SSH 去 Linux

現在你的 Linux 是一個可以被 SSH 登錄的狀態了. 我們先從 MacOS 或者是你另一臺 Linux 遠程這臺 Linux 開始. 因爲 MacOS 和 Linux 都是類似的系統, 所以操作起來比 Windows 簡單.

我有 Mac, 所以使用 Mac 來 demo 具體操作, 這個操作和你用 Linux 操作 SSH 是一樣的. 你只需要打開 Mac 上的 Terminal. 然後輸入:

$ ssh [要控制的用戶名]@[它的IP地址]

舉個例子, 我要用 mac 來操控的 Linux 的用戶名叫做 Mr, Mr 這臺 linux 的 ip 地址可以這樣獲取. 首先, 回到要控制的 Linux 上, 確保你操控和被操控的兩臺電腦連接上了同一個路由器. 然後在你 被操控 電腦的 terminal 上輸入這個獲取 被操控 電腦的 ip 號碼.

$ ifconfig

如果它提示你沒有安裝 ifconfig, 你就按它的要求安裝就好. 輸入下面指令就能安裝.

$ sudo apt install net-tools

確保 ifconfig 能用後, 輸入 ifconfig, 接着找到以 inet 開頭的字樣, 這就是你在這個路由下的 ip 地址了. 比如我現在的 ip 是 192.168.0.114

inet addr:192.168.0.114

找好了 ip (192.168.0.114), 知道你被操控電腦的用戶名 (Mr), 現在回到操控電腦的 terminal (我的 Mac). 在 terminal 中輸入之前提到的 ssh 開頭的命令. 然後它就會要求你輸入被操控的 Linux 的用戶密碼. 很顯然, 只有知道密碼的人才能登陸你的 Linux, 不然就太容易被黑了.

$ ssh [email protected]
[email protected]'s password:

有可能你在嘗試這樣直接 ssh 的方式失敗. 像我, 剛從16版的 Ubuntu 升級到 17 版, 我的 Mac 由於某些原因不讓我 ssh 去 17 版的 Ubuntu, 顯示了下面的報錯, 後來查了一下, 找到了一個解決方式.

ERROR: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
ERROR: @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
ERROR: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
ERROR: IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
ERROR: Someone could be eavesdropping on you right now (man-in-the-middle attack)!
........
ERROR: ECDSA host key for 192.168.0.114 has changed and you have requested strict checking.
ERROR: Host key verification failed.

如果你也看到上面這種報錯, 直接在你的電腦上 (我的 Mac 上) 的 terminal 運行下面這個:

 ssh-keygen -R 要 ssh 去的 ip 比如下面這樣
$ ssh-keygen -R 192.168.0.114

恢復正常後, 接着再按上面的步驟 ssh 去 Ubuntu. 輸入, 確認密碼後, 你在操控電腦的 terminal 就會瞬間變成被操控電腦的 terminal 啦. 他會顯示這樣一些信息證明你登錄成功. 現在你就能自由的運用之前所學的 Linux 的指令, 在你的電腦上遠程操控 Linux 電腦啦.

Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-96-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

147 packages can be updated.
53 updates are security updates.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章