經過本篇閱讀,你的收穫以下java
平時開發過程當中,登錄遠程linux機器是必定會發生的。正常咱們的操做步驟以下linux
1. 打開iTerm2
2. ssh root@50.100.11.10
3. 輸入密碼
複製代碼
實際工做中有多個遠程服務器,須要鏈接。每一個都要如上操做一遍,實在繁瑣。尤爲是複雜密碼的時候vim
這是稍友好一點的方式安全
實現密碼登陸的方法是經過openssh
的ssh config
的功能。具體操做爲~/.ssh/config,若是不存在,可能新建一個 而後vim ~/.ssh/config
bash
Host aliyun
HostName 50.100.11.10
User root
Port 22
複製代碼
保存退出。這時在iTerm2中就能夠輸入ssh aliyun
,回車 而後輸入密碼。注意,這時候已經不用輸入ssh root@50.100.11.10,只要輸入密碼就登陸上了。這種方式的麻煩之處是還要使用密碼,尤爲是密碼很難記憶的時候,每次都要去某個地方找一通服務器
這是稍稍友好一點的方式ssh
方法是使用ssh-copy-id
功能,原理是將本機的密鑰複製到遠程要鏈接的機器上,從而受權鏈接。iterm終端輸入:學習
$ ssh-copy-id -i user@192.168.1.101 這樣就能夠密碼登陸了。這種方式的缺點在於你本機的密鑰會傳到遠程的機器上。試想一下,測試環境機器不少人共用,你的密鑰對其餘人就是可見的了,不夠安全測試
基於此,自定義一個免登錄的腳本。至關於項目初始化操做ui
原理其實很簡單,在腳本彙總預先配置好遠程機器的ip和密碼,結合linux pbcopy ssh等命令實現免密登陸。功能很簡單,也能夠做爲熟悉和練習linux bash的入門例子。具體以下
skyler@bogon ~ pwd
/Users/skyler
skyler@bogon ~ mkdir bin
skyler@bogon ~ cd bin
skyler@bogon ~/bin pwd
/Users/skyler/bin
複製代碼
定義名稱爲bin的文件夾是有緣由的。正常咱們執行文件是這樣了:sh xxxx。咱們想像java這樣執行。因此咱們要在系統配置文件裏配置這個目錄
建立一個文件:auth,執行這個文件實現免登錄
skyler@bogon ~/bin touch auth
複製代碼
skyler@bogon ~/bin chmod u+x auth
複製代碼
skyler@bogon ~/bin vim auth
# !/bin/bash
# author skyler
# get ssh value from ssh key
# 這裏演示的命令:read, test, if else, echo, pbcopy, ssh, 定義變量
echo "主機別名:liantiao dev"
read -p "^V^ 請輸入您要鏈接的主機別名:" hostName
function noMatchTip() {
echo "sorry 沒有找到$1的密碼"
}
if test $hostName == "liantiao" ; then
sk="qdfgdgdf"
elif test $hostName == "dev" ; then
sk="dfgdfg"
else
noMatchTip ${hostName};
fi
outMsg="$hostName"
echo "$sk" | pbcopy
echo "你要鏈接機器的別名:$outMsg, mac請按下Cmd+v"
if [ $hostName == "liantiao" ]; then
ssh work@10.100.20.11
elif [ $hostName == "dev" ]; then
ssh root@50.98.100.10
else
noMatchTip ${hostName};
fi
複製代碼
保存文本退出
爲了能讓auth成爲全局命令,須要將/Users/skyler/bin
添加到系統配置文件中,對於個人mac,由於我使用了oh-my-zsh,因此須要將目錄放到~/.zshrc
,具體以下
skyler@bogon ~ vim ~/.zshrc
export PATH=${PATH}:/Users/skyler/bin
複製代碼
從新加載~/.zshrc
skyler@bogon ~ source ~/.zshrc
複製代碼
skyler@bogon ~ auth
複製代碼
選擇輸入你要鏈接的服務器,而後cmd+v,而後就會鏈接到遠程服務器了。到此免密登陸實現。固然,你還能夠根據本身的需求稍微改動,如不顯示登陸密碼、簡化選擇服務器操做。這是你的事了
整個下來,你會發現,其實很簡單,可是對提供工做效率倒是起到很大做用。實際工做中,你會發現,文章開始的鏈接操做,雖然每次鏈接都要操做幾步和輸入密碼的麻煩操做,可是他仍是能連上遠程,一樣能看日誌,查問題。因此不少人日復一日的這麼作。他們不聰明嗎,他們也不笨。但可能被生活折磨的沒有精力了吧。但進取的心仍是要有的,能提供工做效率的操做就要去作,哪怕是這麼小的點
我剛剛升p7失敗,平時的努力工做精力和內容通過個人笨嘴巴拉巴拉後,沒有表達出來,天然就晉升失敗了。短暫的傷心後,仍是要給本身動力。因此,無論啥時候,不要被生活的折磨和工做的困難屈服,付出總會有收穫。