by Devin Yang , 5 years ago

在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

Devin Yang

有什麼建議或想法,歡迎提出來哦

No Comment

Post your comment

Login is required to leave comments

Similar Stories


docker

關於GCE上FPM image如何變更owner

CCC網站升級php 7.2.0囉,有Docker的環境,輕鬆搞定php升級, 在Linux上Image的變更還是有些注意事項您應該了解。 如果您跟我一樣透過docker將D-Laravel安裝於Linux的系統上,當您變更不同的image時, 或許您可能會碰到,疑!怎麼composer沒有權限寫入資料夾的錯誤。 directory is not writable

ubuntu, resolv.conf

如何調整ubuntu的/etc/resolv.conf設定

在CentOS的系統,通常我都直接改/etc/resolv.conf, 結果這次要改Ubuntu時上面確寫著.. 「不要手動變更這個檔,不然就把你的手砍掉」, 哦,翻錯了嗎?,# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN 所以Goolge一下就找到步驟了..

dns

清除MacOS DNS快取方式

如何清除各種不同版本的MacOS DNS 快取的指令