參考:https://deepzz.com/post/how-to-setup-ssh-config.htmlhtml
SSH(Secure Shell)是什麼?是一項建立在應用層和傳輸層基礎上的安全協議,爲計算機上的 Shell(殼層)提供安全的傳輸和使用環境。也是專爲遠程登陸會話和其餘網絡服務提供安全性的協議。它可以有效防止遠程管理過程當中的信息泄露問題。經過 SSH 能夠對全部傳輸的數據進行加密,也可以防止 DNS 欺騙和 IP 欺騙。git
具體生成 SSH Key 方式請參考:Github ssh key生成,免密登陸服務器方法。這裏以 id_ecdsa
(私鑰) 和 id_ecdsa.pub
(公鑰) 爲例。github
本篇文章主要介紹 SSH 相關的使用技巧。經過對 ~/.ssh/config
文件的配置你能夠大大簡化 SSH 相關的操做,如:docker
Host example # 關鍵詞 HostName example.com # 主機地址 User root # 用戶名 # IdentityFile ~/.ssh/id_ecdsa # 認證文件 # Port 22 # 指定端口
eg:
Host dev165 HostName 192.168.28.165 User sea IdentityFile /sea.pem Port 22
經過執行 $ ssh example
我就能夠登陸個人服務器。而不須要敲更多的命令 $ ssh root@example.com
。又如咱們想要向服務器傳文件 $ scp a.txt example:/home/user_name
。比之前方便多了。安全
更過相關幫助文檔請參考 $ man ssh_config 5
。ruby
SSH 的配置文件有兩個:服務器
$ ~/.ssh/config # 用戶配置文件 $ /etc/ssh/ssh_config # 系統配置文件
下面來看看經常使用的配置參數。網絡
Host
用於咱們執行 SSH 命令的時候如何匹配到該配置。ssh
*
,匹配全部主機名。*.example.com
,匹配以 .example.com 結尾。!*.dialup.example.com,*.example.com
,以 ! 開頭是排除的意思。192.168.0.?
,匹配 192.168.0.[0-9] 的 IP。AddKeysToAgent
是否自動將 key 加入到 ssh-agent
,值能夠爲 no(default)/confirm/ask/yes。post
若是是 yes,key 和密碼都將讀取文件並以加入到 agent ,就像 ssh-add
。其餘分別是詢問、確認、不加入的意思。添加到 ssh-agent 意味着將私鑰和密碼交給它管理,讓它來進行身份認證。