前端工程師必會之ssh命令

2021-09-13 15:16:13 字數 4129 閱讀 3572

原理部分較為深奧,我將基於對linux ssh command的翻譯對ssh做一些探索,會加入一些自己的實驗和總結,主要目的在於:應用。

linux ssh command

這一頁主要是unix/linux或者mac終端的openssh ssh命令。

幾乎所有的unix和linux系統包括ssh命令。這個命令可以用來開啟ssh 客戶端程式,從而建立ssh 伺服器與遠端機器之間的安全連線。

ssh命令有以下用途:

linux的ssh 命令

ssh命令可以在不安全的網路中對兩個主機建立安全的加密連線。這個連線可用於終端驗證,檔案傳輸,以及與其他應用建立通道。graphical x11應用可以通過ssh命令在遠端安全執行。

其他的 ssh 命令

除了ssh客戶端命令,這裡有一些其他的ssh命令。每乙個`都有自己的page。

- ssh-keygen - 為公鑰驗證建立鑰匙對。

- ssh-copy-id - 在伺服器上配置公鑰的授權。

- ssh-agent - 用於儲存**單點登入**私鑰的**程式

- ssh-add - 新增秘鑰到**的工具

- scp - 基於rcp-like命令介面的檔案傳輸客戶端

- sftp - 基於ftp-like命令介面的檔案傳輸客戶端

- sshd - openssh 伺服器

使用linux ssh 客戶端

linux預設使用openssh客戶端。ssh命令可以登入到乙個遠端機器非常好用。為了登入到名為sample.ssh.com的遠端計算機,在shell命令列輸入下面的命令:

ssh sample.ssh.com
如果這是你第一次使用ssh連線遠端的機器,你將看到下面的資訊:

the authenticity of host 'sample.ssh.com' cannot be established.

dsa key fingerprint is 04:48:30:31:b0:f3:5a:9b:01:9d:b3:a7:38:e2:b1:0c.(或者是rsa key fingerprint is sha256:foo0a1b /bar0a1b )

are you sure you want to continue connecting (yes/no)?

輸入yes繼續。這將新增服務到你的已知host檔案中。(~/.ssh/known_hosts),會給出下面的提示資訊:

warning: permanently added 'sample.ssh.com' (dsa) to the list of known hosts.

(或者warning: permanently added 'fe.crm.test.weidiango.com' (rsa) to the list of known hosts.

)

known_hosts檔案的格式如下,以github為例:

github.com,13.229.188.59 ssh-rsa aaaab3nzac1yc2ea...
格式為網域名稱, ip位址 ssh-rsa/ssh-dsa public key,在使用ssh登入遠端主機時,遠端主機會為你返回public key。

每乙個伺服器都有乙個host key,通過上面的與驗證相關的問題可以驗證並且儲存host key,所以下次你連線伺服器時,host key可以識別出這是相同的伺服器。

一旦連線建立,使用者就完成了認證。通常來說,它會提醒你輸入密碼。對於一些伺服器,你將輸入硬編碼的密碼。

一旦驗證通過,你將可以通過本地的終端,鍵入命令去控制遠端的機器。

指定不同的使用者名稱

可以通過命令指定不同的使用者登入:

ssh [email protected]
也可以用下面的語法表示:

ssh -l alternative-username sample.ssh.com
在伺服器上執行遠端命令

ssh命令可以在不登入的情況下執行遠端機器的命令。語法如下:

ssh hostname command
例如,執行下面的命令

ls /tmp/doc
在主機sample.ssh.com,鍵入下面的命令

ssh sample.ssh.com ls /tmp/doc
或者是

ssh [email protected] ls /etc
注意:

1.在不登入的情況下,沒次都需要輸入root使用者的密碼。

2.若不指定使用者名稱,則會登入到你本地的當前使用者名稱賬號。

例如:frankdeimac:~ frank$ ssh 192.169.33.32

會提示輸入:[email protected]'s password:

在遠端伺服器驗證完後,遠端目錄中的內容將會被展示出來,而且你將返回自己的本地shell 終端。-x 禁用disables x11**。

退出ssh登入

exit
ssh客戶端配置檔案

ssh的配置檔案位於~/.ssh/config。可查閱ssh client configuration file。

ssh公鑰認證

ssh-keygen以及ssh-copy-id,macos的公鑰位於~/.ssh/id_rsa.pub,windows的位於c:\users\username\.ssh\id_rsa.pub

配置埠**

可以本地**(本地埠**到伺服器的ip位址和埠)。可以遠端**(遠端埠**到客戶端的ip位址和埠)。

openssh支援通過通道裝置**unix 網域名稱socket和ip 包,從而建立vpn(virtual private network)。

ssh 命令列引數

下面是一些非常重要的openssh客戶端命令列引數。

- 1 使用第1版本的協議

- 2 使用第2版本的協議

- 4 僅使用ipv4位址

- 6 僅使用ipv6位址

- a 開啟**認證**

- a 禁用**認證**

- c 使用資料壓縮

- c cipher_spec 選擇密碼格式去加密session。

- d [bind_address:]port 動態應用級埠**。這會分配乙個套接字來偵聽本地埠。當與此埠建立連線時,將通過安全通道**連線,然後使用應用程式協議確定從遠端計算機連線的位置。

- e log_file 新增乙個debug日誌到log_file而不是標準錯誤。

- f configfile 指定使用者的ssh配置檔案,預設的位於~/.ssh/config。

- g 允許遠端主機鏈結到本地的**埠。

- i identity_file 認證檔案,公鑰檔案。

- j [user@]host[:port] 連線建立ssh連線到pjump主機(/iam/jump-host),然後建立乙個tcp **到遠端的機器。

- l login_name 指定登入到遠端機器的使用者名稱

- p 指定連線到遠端機器的埠

- q 安靜模式

- v 顯示版本號

- v冗餘模式

- x 執行x11**

乙個小歷史

ssh在1990s取到了眾多老舊的unix和linux命令列和協議。包括telnet,rlogin和rsh。

ssh執行在tcp/ip 22號埠。ssh誕生於2023年春天,這是乙個telnet和ftp被大肆使用的年代。關於ssh如果得到22號埠,有乙個很有趣的故事: how ssh got port 22

參考:

前端工程師必備之 LESS

一 為什麼要用less?作為前端學習者的我們 或多或少都要學些 css 它作為前端開發的三大基石之一,時刻引領著 web 的發展潮嚮。而 css 作為一門標記性語言,可能 給初學者第一印象 就是簡單易懂,毫無邏輯,不像程式設計該有的樣子。在語法更新時,每當新屬性提出,瀏覽器的相容又會馬上變成絆腳石,...

前端工程師必備之 typescript

型別名 anylet name string bob let age number 37 首先我們看看數字列舉,如果你使用過其它程式語言應該會很熟悉。enum direction如上,我們定義了乙個數字列舉,up使用初始化為1。其餘的成員會從1開始自動增長。換句話說,direction.up的值為1...

母雞與前端工程師

1 新聞說,2016年全國高校畢業生達到空前的756萬,又趕上很多傳統行業壓縮產能,就業壓力很大。很多曾經的 明星專業 都已經就業困難。我考大學的時候,國際 是最熱門的專業之一,大家認定這個專業容易賺錢。但是現在這個專業的畢業生,想找乙份好工作會很難,上海將它列入10大預警專業,即最難就業的十個專業...