首頁 > 軟體

Linux SSH登入命令總結

2020-06-16 16:44:46

當專案計算量比較大,我們需要將任務分布到多台電腦上面執行,因為對於分散式概念不熟,就想到了Linux最簡單的ssh協定,遠端控制其他電腦,然後寫shell指令碼統一在所有電腦上執行程式。

簡單說,SSH是一種網路協定,用於計算機之間的加密登入。

如果一個使用者從本地計算機,使用SSH協定登入另一台遠端計算機,我們就可以認為,這種登入是安全的,即使被中途截獲,密碼也不會洩露。

最早的時候,網際網路通訊都是明文通訊,一旦被截獲,內容就暴露無疑。1995年,芬蘭學者Tatu Ylonen設計了SSH協定,將登入資訊全部加密,成為網際網路安全的一個基本解決方案,迅速在全世界獲得推廣,目前已經成為Linux系統的標準設定。

需要指出的是,SSH只是一種協定,存在多種實現,既有商業實現,也有開源實現。本文針對的實現是OpenSSH,它是自由軟體,應用非常廣泛。

下面我們以Ubuntu 16.04為例子看看使用ssh有哪些步驟:

1

在電腦中輸入以下命令檢視是否安裝了ssh:

—ps -e | grep ssh

如果返回結果由上圖中的sshd,則說明已經安裝好ssh,否則可以使用下面命令線上安裝:

—sudo apt-get install ssh

2

使用ssh命令登入其他電腦:

—ssh username@ip,

會提示需要輸入密碼,這時候輸入密碼即可遠端控制另一台電腦.

3

ifconfig檢視ip

如果有十台電腦需要你連線,分配任務,這樣做就要每次都記住相應的電腦ip和密碼,不利於我們用指令碼統一執行,因此第一步就是需要將需要遠端控制的電腦免密登入.

生成金鑰:

—ssh-keygen

然後一路enter,此時會在主目錄下生成.ssh的資料夾

用下面命令可以進行檢查核對:

—ls -a 

此時說明秘鑰對已經生成好了

5

將公鑰通過scp拷貝到你需要連線的電腦上:

 —cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

—scp ~/.ssh/id_rsa.pub username@ip:~/.ssh/id_rsa.pub_copy

遠端連線上你需要連線作為伺服器的電腦:

—touch ~/.ssh/authorized_keys

—cat ~/.ssh/id_rsa.pub_copy >> ~/.ssh/authorized_keys 

7

修改許可權:

—chmod 755 ~

—chmod 700 ~/.ssh

—chmod 600 ~/.ssh/authorized_keys 

這裡整個流程就結束了!

這裡很多人不太明白755,700,600這些資料的含義,這個是linux許可權的數位表達方式.給大家說明一下,比如我們在檢視某個檔案的許可權時:

      我們會看到上面的結果,前面這一部分是由十位組成,1-3-3-3的方式,第一個字母表示檔案型別,d表示的就是資料夾document的第一個字母,接下來第一個三位表示所有者的許可權,第二個三位是所在組的許可權,第三個三位是其他組的許可權.R--讀,W-寫,X-執行,所以rwx表示當前組可讀可寫可執行.回到上面數位,R同時對應數位4,W對應2,X對應1.現在可以明白755表示所有者是可讀可寫可執行,所在組是可寫可執行,其他組也是可寫可執行.好啦,現在可以測試一下是否可以免密碼登入他人電腦了:

      在執行過程中,你可能會遇到這個問題,這是表明ssh-agent在執行,但是沒有找到相應的key,我們通過ssh-add,即可解決,同時也可以通過ssh-add -l來檢視附加的key.

     在遠端連線中還是需要輸入使用者名稱和ip,如果你不想輸入使用者名稱,就在最初為所有的電腦建立一個相同的使用者即可.指令碼執行所有程式:

Screen -dm ssh -t username1@ip1 “...”  (在引號裡面輸入你想執行的命令即可)

Screen -dm ssh -t username2@ip2 “...”  

ps:寫得不好的地方希望大家多多指教.!

Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx

本文永久更新連結地址https://www.linuxidc.com/Linux/2018-09/154294.htm


IT145.com E-mail:sddin#qq.com