secure shell,只是一種協議,實現它的軟體有很多,我們常用的開源又免費的軟體叫openssh,分為客戶端和服務端。不是運維,服務端我沒搞過,所以這裡只講客戶端用法,大部分程式設計師應該只要知道客戶端使用就好了。
安裝openssh-clients,然後就可以通過ssh-agent連線遠端伺服器:
[allen@lenovo ~]$ sudo yum install openssh-clients
口令登入遠端伺服器:
[allen@lenovo .ssh]$ ssh [email protected]
the authenticity of host '192.168.18.236 (192.168.18.236)' can't be established.
ecdsa key fingerprint is sha256:dyqrgbjen7y/qqcnhzdqedgpcowzpb5iih9amcpf97e.
ecdsa key fingerprint is md5:5f:7c:41:f2:ad:45:df:03:12:e2:2b:5b:eb:a1:06:8b.
are you sure you want to continue connecting (yes/no)? yes
warning: permanently added '192.168.18.236' (ecdsa) to the list of known hosts.
last login: wed oct 2 11:21:11 2019 from 192.168.7.2
預設使用22埠,如果服務端改了埠,就通過-p指定。首次登入,會有警告,讓你確認主機的公鑰正確性,防止冒充,輸入yes,主機和公鑰的對應關係就會被記錄到~/.ssh/known_hosts檔案,下次登入就不會再次警告。
免密登入遠端伺服器:
第一步,生成金鑰對:
[allen@lenovo .ssh]$ ssh-keygen -trsa -c"[email protected]" -fid_rsa
# -t 加密演算法,一般就是rsa
# -c 備註,方便檢視
# -f 金鑰檔名
# 在~/.ssh目錄下會生成兩個檔案,id_rsa(私鑰),id_rsa.pub(公鑰)
第二步,將公鑰放到服務端:
[allen@lenovo .ssh]$ ssh-copy-id -i id_rsa.pub [email protected]
# 會把公鑰cp到服務端使用者~/.ssh/authorized_keys檔案中
下次登入就不需要口令了:
[allen@lenovo .ssh]$ ssh [email protected] -i id_rsa
檢視自己的公鑰是不是已經放到服務端了:
[allen@lenovo .ssh]$ ssh -f 192.168.18.236
刪除服務端的公鑰:
[allen@lenovo .ssh]$ ssh -r 192.168.18.236
配置:
這裡只寫了我平常經常用的,其它的高階用法我也沒用過。/etc/ssh/ssh_config是系統級配置,一般不改,在~/.ssh/目錄下新建檔案config:
host sm
hostname 192.168.18.236
port 22
user admin
identityfile ~/.ssh/id_rsa
下次登入192.168.18.236,只要:
[allen@lenovo .ssh]$ ssh sm
遠端執行指令:
[allen@lenovo .ssh]$ ssh sm "ls /"
遇到top這種持續返回結果的,需要加上-t,保持終端不關閉,再按q離開:
[allen@lenovo .ssh]$ ssh sm -t "top"
ssh客戶端的選擇
目前主流的ssh工具有 finalshell xshell securecrt。筆者之前用securecrt和xshell,最近一直在用finalshell,securecrt介面功能較多,但是是英文版,中文版漢化不全或存bug,讓我苦惱的是輸出內容太費眼了,行間距太窄且無法調節。xshell跟se...
幾款SSH客戶端
securecrt xshell putty等都僅僅是客戶端軟體,一般用於windows客戶端計算機,因此,無論選擇哪款客戶端ssh工具都是可以的。1 securecrt 8.1版本 securecrt是一款支援ssh ssh1和ssh2 協議的終端 軟體,常被用來執行於windows下遠端登入un...
SGame 簡單客戶端
在sgame client目錄下提供了乙個game cli.go,提供了簡單的功能,包括註冊 登陸和登出 首先進入client目錄,然後編譯之 go build game cli.go game cli game cli h a string server ip default 127.0.0.1 ...