by Devin Yang

建立於: 7年前 ( 更新: 7年前 )

在ssh的核心套件中的程式諸如,scp、ssh、ssh-add、ssh-agent、sshd及ssh-keygen
本文主要簡單描述ssh-agent及ssh-add使用情境。

在開始前先來看看這些指令用途的簡介:
scp Secure Copy主機間進行加密安全的拷貝。
ssh Secure Shell用戶端,用來連接伺服器執行系統命令,可以視為有加密的telnet。
ssh-add 把金鑰識別加到驗證代理員。
ssh-agent 進行公鑰驗證時,讓遠端主機可以存取儲存您的私人鑰匙。
sshd 預設會聆聽通訊埠22的Secure Shell伺服器。
ssh-keygen ssh的金鑰產生器,可以產生公私鑰對,進行遠端主機的公鑰驗證。
我們使用 ssh-add 前,先來看看驗證代理員(ssh-agent -- authentication agent),如何啟動他?
非常簡單,只要在命令列輸入命令 ssh-agent 即可。
ssh-agent
完成後,我們就可以透過 ssh-add 命令,將金鑰加入到 ssh-agent (驗證代理員)。
未使用任何參數時, ssh-add 會去新增~/.ssh/id_rsa, ~/.ssh/id_dsa, ~/.ssh/id_ecdsa, ~/.ssh/id_ed25519 and ~/.ssh/identity.
金鑰有密碼時,會要求輸入金鑰的密碼,如果提供了多個金鑰檔,他會記住最後一組輸入的密碼

用途一(記憶密碼):
所以我們可以透過 ssh-add 把密碼加入到 ssh-agent 來記憶我們的金鑰密碼,
這樣我們連線到遠端主機時就不需打複雜的金鑰密碼了。
我們可以透過-K,將密碼記憶到鑰匙圈中。(在Mac OS上重開機就會忘了ssh-agent金鑰)

用途二 (轉發驗證代員連線): 噢太文言文了,說白一點,就是跨主機驗證。

Client---->ServerA---->ServerB。

舉例,Server A無法登入Server B,我們Client是能登A及B的。
我們可以透過 ssh -A ServerA ,因為有了-A參數,啟動了轉發(forwarding)功能,這樣就連到ServerA再透過轉發代理,使用我們的金鑰連到ServerB了。
我們能透過,如下的指令 ssh-add -L 查看新增到ssh-agent的公鑰。

不過每次啟用這個功能好像很麻煩,所以我們也可以將他加入到自己的ssh組態檔中。
~/.ssh/config
Host ServerA
  HostName 35.194.181.21
  ForwardAgent yes

Tags: linux security

Devin Yang

文章內容無法一一說明,如果您有什麼不了解處,歡迎提問哦:)

No Comment

Post your comment

需要登入才可留言!

類似的文章


linux, mac, terminal, tips

再Linux或Mac的終端機如何清除目前的命令列的輸入?

再Linux或Mac的終端機如何清除目前的命令列? 例如打錯了一堆指令,打錯了想清除從打, 千萬要跟我以前一樣,用倒退鍵慢慢殺了,我們可以用......

linux,raspberry

樹莓派安裝VNC Server

檢單介紹如何在樹莓派上啟動VNC Server

linux, python, colab

如何從我們的Server透過ssh連線到colab?

介紹我寫的一支bash,用來透過ssh連線到colab vm內。 一行指令,搞定colab OpenSSH Server。