description: 使用SecureCRT痛苦以後的崛起git
mac 系統上我一直少有發現一款好用的 ssh 工具, 免去我記住多個密碼的煩惱.github
通過大量時間的尋找, 我發現了一款名爲 SecureCRT 的工具, 能夠在 mac 系統上使用, 的確能夠免除我記住大量密碼的煩惱, 可是使用的痛苦也隨之而來.shell
基於以上三個問題, 我決定翻出去年寫的那個已經不能用的腳原本搞好他.vim
以前的腳本存在幾個問題bash
經過網上苦苦的搜索, 我找到一個朋友寫的一個東西很是棒. fork 了他的項目, 改編了一下, 使其能更好的適用於個人電腦. 此處感謝 AlicFeng 的文章給個人幫助, 此處是github 地址.服務器
首先說說爲何要重寫ssh
-s 登陸的時候,後面的編號並非 ini 文件中的 Index 項,而是取決於 shell 過濾出來的 ini 文件順序工具
基於上面 3 點功能, 打算小小的改造一下.測試
首先解決重點解決第三個問題. AlicFeng 以前使用的是集合, 順序得不到保證. 所以, 我在想, 是否是能夠用 Map 類型來存儲. 通過查閱資料, 發現 Map 數據類型和 bash 相關, mac 下的 bash 是 3.x, 可是 Map 數據類型必需要 4.x 以上. 因而乎, 須要升級個 bash.ui
mac 升級 bash 以前須要關閉 SIP(System Integrity Protection). 網上有不少文章關於如何操做, 先簡單介紹一下, 不清楚的能夠去查閱資料. 首先重啓電腦, 並按住 command+r 鍵, 進入恢復模式. 進入恢復模式的系統以後, 打開上方工具欄中"實用工具"下的"終端". 在終端中輸入 csrutil disable
複製代碼 成功以後, 重啓電腦. 這個時候就能夠升級 bash 了. 打開 iterm2, 輸入命令 brew install bash
複製代碼 升級成功以後輸入以下命令 # 替換bash
sudo mv /bin/bash /bin/bash.origin
sudo ln -s /usr/local/opt/bash/bin/bash /bin/bash
# 因爲本mac版本下的sh並非直接連接bash,而是bash的一個文件拷貝。所以,還要替換默認的sh指向的命令爲bash,以下:
sudo mv /bin/sh /bin/sh.origin
sudo ln -s /usr/local/opt/bash/bin/bash /bin/sh
複製代碼 這個時候能夠經過命令來查看是否成功 bash --version
複製代碼 安裝以後, 就能夠重啓電腦, 把 SIP 給啓動. 一樣進入恢復模式下輸入 csrutil enable
複製代碼 而後重啓電腦. |
打開 iterm2, 輸入命令 brew install bash
複製代碼 這個時候須要把下載下來的 lucy 腳本的 "開頭"部分, 加上一小段說明 #!/usr/local/bin/bash 複製代碼 表示使用咱們當前下載下來的 bash, 而不是系統目錄下面的 bash |
仍是打開 iterm2, 這個時候, 安裝一個小插件, 讓界面更漂亮
brew install toilet
複製代碼
安裝好以後, 就進入了正文.
首先介紹下, 文件路徑.
首先到~目錄下, 建立一個文件夾
mkdir ssh-lucy
複製代碼
建立一個 servers 的文件. (無後綴).
文件中內容放入如下東西
#服務器IP 帳號 密碼 端口 主機
複製代碼
實際最後放入的東西內容以下圖所示
最後的主機一列, 存放的是咱們用於尋找登陸哪一個服務器的名稱, 也就是咱們存入 Map 中的 key, 能夠自定義.
存好服務器地址以後, 就可使用咱們真正的腳本.
服務器腳本最後保留一個空行.
我給她起了一個很是人性化的名字, 也是我心心念唸的名字"lucy"([人類的始祖](<en.wikipedia.org/wiki/Lucy_(…)
從 gayhub 上下載文件"lucy"以後, 放入本地的
/usr/local/bin
複製代碼
目錄.
修改文件中的第十行內容"目錄"爲 servers 存在的絕對路徑.
而後賦予這個文件生命
chmod +x lucy
複製代碼
此刻大公告成.
此刻存在的命令以下, 延續了 AlicFeng 以前的命名
// l表示list, 表示查看列表(不包含密碼)
lucy -l
// h表示help, 表示幫助
lucy -h
// s 表示ssh, 也就是平時咱們使用的登錄方式
lucy -s 主機名
// p表示password, 展現包含密碼的查看列表
lucy -p
複製代碼
效果以下: