背景:從windows10換到deepin後,在鏈接公司的服務器遇到了問題:windows下用的是xshell,開啓xagent後,可直接從公司的跳轉板上鍊接生產服務器;在deepin的深度終端上,從公司的跳板機鏈接到生產服務器時,提示須要public key。baidu+google幾回以後,終於解決了這個問題。linux
在深度終端中,實現像xshell下那樣,快速地登陸生產服務器,至少要解決兩個問題:shell
深度終端中自帶了遠程服務器的管理功能,惋惜的是,並不支持ssh-agent功能,所以只能自主實現了。windows
關於如何開啓ssh-agent方法,主要是使用如下命令:bash
eval `ssh-agent`
對於如何免密碼輸入,能夠使用expect
功能,實現密碼自動輸入。幸運的是,expect
在deepin上已經默認安裝了,不能再去折騰安裝過程了。服務器
我使用的shell腳本以下:ssh
#!/bin/bash # # ssh 鏈接方法,開啓ssh-agent # connect() { #開啓ssh-agent eval `ssh-agent` #使用expect實現密碼自動輸入 expect -c " spawn ssh-add $1 #Enter passphrase for /home/root/.ssh/id_rsa: expect "*passphrase*" send -- $3\r spawn ssh -A fangchengyan@$2 -p $4 -i $1 #Enter passphrase for key '/home/root/.ssh/id_rsa': expect "*passphrase*" send -- $3\r interact exit " exit } PASSWORD="password" SSH_KEY="/home/root/.ssh/id_rsa" SERVER="192.168.0.1" PORT=22 # # 使用時,可根據編號,自主選擇要鏈接的服務器 # echo '請選擇:' echo '1) 跳板機1-192.168.0.1' echo '2) 跳板機2-192.168.0.2' read num case $num in 1) SERVER="192.168.0.1" connect ${SSH_KEY} ${SERVER} ${PASSWORD} ${PORT} ;; 2) SERVER="192.168.0.2" connect ${SSH_KEY} ${SERVER} ${PASSWORD} ${PORT} ;; *) connect ${SSH_KEY} ${SERVER} ${PASSWORD} ${PORT} ;; esac exit
以上腳本開啓了ssh-agent功能,並實現了自動密碼輸入功能,代替了xshell中的xagent功能。google
最後,想說的是,使用linux是一個折騰的過程,期待deepin快速發展(願深度終端早日支持ssh-agent功能),讓咱們這些使用者能少些折騰。spa