Autossh-go寫的一個ssh遠端客戶端
Autossh
用golang寫的一個ssh遠端客戶端。可一鍵登入遠端伺服器,主要用來彌補Mac Terminal ssh無法儲存密碼的不足。
使用Mac開發已有幾個月,一直沒有找到比較好用的ssh客戶端。SecureCRT有Mac版,始終覺得沒有自帶的Terminal好用。而Terminal只是一個終端,
對於經常要通過ssh遠端操作的人來說,功能還是太弱了。
其間,我也試過自己寫一些shell來輔助,如:alias sshlocal="ssh [email protected]"
,但是它無法記住密碼自動登入。
再如,使用sshpass實現記住密碼,但用著還是各種彆扭。原因:
- 這些功能都是編寫shell實現的,本人對shell程式設計並不擅長
- shell指令碼逼格不夠高
最後,下定決心用golang寫一個ssh client。為什麼不用C或者Java?因為golang是世界上最好的編譯語言,PHP是世界上最好的指令碼語言。
配置
下載編譯好的二進位制包autossh,在autossh同級目錄下新建一個servers.json檔案。
編輯servers.json,內容可參考server.example.json
[
{
"name": "vagrant", // 顯示名稱
"ip": "192.168.33.10", // 伺服器IP或域名
"port": 22, // 埠
"user": "root", // 使用者名稱
"password ": "vagrant", // 密碼
"method": "password" // 認證方式,目前支援password和pem
},
{
"name": "ssh-pem",
"ip": "192.168.33.11",
"port": 22,
"user": "root",
"password": "your pem file password or empty", // pem金鑰密碼,若無密碼則留空
"method": "pem", // pem金鑰認證
"key": "your pem file path" // pem金鑰檔案絕對路徑
}
// ...可配置多個
]
儲存servers.json,執行autossh,即可看到相應伺服器資訊,輸入對應序號,即可自動登入到伺服器
高階用法
設定alias,可在任意目錄下呼叫
[[email protected] ~]# vim /etc/profile
在行尾追加 alias autossh="/usr/bin/autossh"
[[email protected] ~]# . /etc/profile
編譯
go build main.go
依賴包
- golang.org/x/crypto/ssh
相關推薦
Autossh-go寫的一個ssh遠端客戶端
Autossh 用golang寫的一個ssh遠端客戶端。可一鍵登入遠端伺服器,主要用來彌補Mac Terminal ssh無法儲存密碼的不足。 使用Mac開發已有幾個月,一直沒有找到比較好用的ssh客戶端。SecureCRT有Mac版,始終覺得沒有自帶的
釋出一個基於Go語言的 SSH 遠端終端 WebConsole
基於Golang、WebSocket、TermJS的SSH遠端終端,希望能幫到大家。 主要應用到隔離網路內,SSH遠端終端的訪問問題。 歡迎大家踴躍報名,利用業餘時間來拓展此專案,增加更多的功能服務大家。 更新日誌 2016.03.05 新增:
新人寫的每日新聞客戶端
creat baidu lis ongl http music hao123 eat 新聞 %E5%A4%8D%E5%86%99ONCREaTE%E6%96%B9%E6%B3%95%E6%97%B6%E5%87%BA%E9%94%99 http://music.hao123
python---》客戶端與服務端的基礎(做一個簡單的客戶端與服務端)
python 今天我們分享的內容是python簡單的客戶端與服務端,此處僅介紹一些簡單的函數,並作出來一個玩兒玩兒。 在開始之前呢,先用一張圖表示他們之間的關系 我們來按照這個步伐依次介紹:服務端:import socketserver=socket.socket()#此處是為了創建
如何寫一個SSH項目(一)程序設計大體思路
設計 工程 png 人員 上帝 hiberna 技術 導包 bsp SSH:分別是指Spring,Struts,Hibernate. 後來Struts2代替了Struts,所以我們常說的SSH是指Spring,Struts2,Hibenate. 其中Spring一般用來配置
如何寫一個SSH項目(二)hibernate.xml配置
手工 多個 元素 數據庫 動態修改 type 轉載 asc span 我只是知識的搬運工。 (轉載) <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hi
WebService手寫簡單案例:客戶端與服務端的資料互動
本篇部落格是模擬服務端釋出服務,客戶端模擬接收服務端的返回資料的一個簡單案例(客戶端輸入姓名,服務端根據客戶端輸入的姓名模糊查詢身份證的案例) 服務端釋出服務 1.專案準備工作:新建一個web專案,匯入mysql的jar包放入工程,寫好jdbc連線,寫好實體類,寫dao,不同的
mysql8遠端客戶端連線方式
mysql 8.0 預設使用 caching_sha2_password 身份驗證機制 —— 從原來的 mysql_native_password 更改為 caching_sha2_password。 從 5.7 升級 8.0 版本的不會改變現有使用者的身份驗證方法,但新使用者會預設使用新的 cac
go伺服器與mfc做客戶端的簡單群聊Demo
//先前程式碼對中文處理有問題,以下程式碼做了修正, //go語言伺服器程式碼 package main import( "fmt" "net" "strconv" "runtime" //go執行緒庫 "strings" ) var conns map[string]ne
Flutter 仿寫的掘金客戶端
使用 Flutter 仿寫的掘金客戶端,自定義了9宮格圖片佈局,頂部 tabbar 佈局,底部 bottomNavigationView APK Download 截圖 總結 Flutter 相比於 RN Weex 寫 UI 優勢比較大,不存在平臺不相容
Go語言11-日誌系統客戶端相關元件
tailf 元件 檢視log日誌,會經常使用到tail -f命令實時跟蹤檔案變化。也可以用Go語言的程式碼來實現同樣的功能,這樣就可以直接用到專案中去了。這裡不用重複造輪子,有一個第三方的庫已經實現了這個功能: import "github.com/hpcloud/tail" HP團隊出的tail庫,常
Go語言11-日誌系統客戶端相關組件
日誌庫 cond gis odin ger 參數 ngs 例子 行數 tailf 組件 查看log日誌,會經常使用到tail -f命令實時跟蹤文件變化。也可以用Go語言的代碼來實現同樣的功能,這樣就可以直接用到項目中去了。這裏不用重復造輪子,有一個第三方的庫已經實現了這個功
用Go寫一個簡單的Selpg命令列程式
設計說明 【程式簡介】 Selpg從標準輸入或從作為命令列引數給出的檔名讀取文字輸入。它允許使用者指定來自該輸入並隨後將被輸出的頁面範圍,然後輸出到標準輸出或是檔案中。 【程式設計】 程式的功能分為以下幾個部分: 讀取一條命令列輸入的指令 解析命令,分析其中
Python3 Django 如何獲取真實遠端客戶端IP
解決方法參考 1.自定義中介軟體 生成http.py放到工程目錄: from django.utils.deprecation import MiddlewareMixin class SetRemoteAddrFromForwardedFor(MiddlewareM
誇伺服器遠端客戶端訪問hbase叢集需要開通的防火牆
問題:hbase客戶端訪問hbase叢集需要怎麼申請開通防火牆? 場景:誇伺服器遠端客戶端訪問hbase叢集需要開通的防火牆和注意事項? 答案: 1)hbase叢集的所有zookeeper伺服器和埠,一般埠預設為2181 2)hbase叢集的所有hmaster伺服器和埠。
用libevent開發一個http服務端,附帶一個curl http客戶端
對http互動較為陌生,所以最近寫了兩個小demo,一個http server 和一個http client,對於http server,很多人推薦使用libevent。http server:#include <stdlib.h> #include <st
boost asio非同步讀寫網路聊天程式客戶端 例項詳解
// // chat_server.cpp // ~~~~~~~~~~~~~~~ // // Copyright (c) 2003-2013 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boos
Netty實戰(1)使用Netty搭建一個簡單的客戶端與伺服器的互動Demo
Netty 是一個基於 JAVA NIO 類庫的非同步通訊框架,它的架構特點是:非同步非阻塞、基於事件驅動、高效能、高可靠性和高可定製性。換句話說,Netty是一個NIO框架,使用它可以簡單快速地開發網路應用程式,比如客戶端和服務端的協議。Netty大大簡化了網
WebService_03使用CXF方式搭建一個簡單的客戶端測試服務端
1 需要一個官方提供的CXF工具 2 配置環境變數 3 執行dos命令 wsdl2java -p 包路經 -client 服務端的地址 必須精確到wsdl wsdl2java -p com.mr.service -client http://127.0.0.1/