背景:从windows10换到deepin后,在连接公司的服务器遇到了问题:windows下用的是xshell,开启xagent后,可直接从公司的跳转板上连接生产服务器;在deepin的深度终端上,从公司的跳板机连接到生产服务器时,提示需要public key。baidu+google几次之后,终于解决了这个问题。

在深度终端中,实现像xshell下那样,快速地登录生产服务器,至少要解决两个问题:

开启ssh-agent(在xshell下只需勾选xagent即可)

免密码输入

深度终端中自带了远程服务器的管理功能,可惜的是,并不支持ssh-agent功能,因此只能自主实现了。

关于如何开启ssh-agent方法,主要是使用以下命令:

eval `ssh-agent`

对于如何免密码输入,可以使用expect功能,实现密码自动输入。幸运的是,expect在deepin上已经默认安装了,不能再去折腾安装过程了。

我使用的shell脚本如下:

#!/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功能。

最后,想说的是,使用linux是一个折腾的过程,期待deepin快速发展(愿深度终端早日支持ssh-agent功能),让我们这些使用者能少些折腾。

原作者:Funcy1122

原地址:https://my.oschina.net/funcy/blog/1941167

deepin下深度终端使用ssh-agent(xshell中的xagent功能)的更多相关文章

  1. Deepin下phpunit安装,以及执行过程中所遇到的问题

    Deepin下phpunit安装,以及执行过程中所遇到的问题 安装phpunit步骤 wget https://phar.phpunit.de/phpunit.phar chmod +x phpuni ...

  2. linux下将终端的输入存入文件中

    代码很简单: #include <stdlib.h> #include <fcntl.h> #include <stdio.h> #include <unis ...

  3. Deepin 下开启SSH远程登陆

    关于deepin下安装ssh以后root用户登陆报错的解决   最近刚刚接触到deepin,觉得,wow,除了mac,还有这么好看的非win系统,而且第测出那个Linux,宽容度很高,非常适合我这种比 ...

  4. deepin下codeblocks更改调试终端

    codeblocks建立控制台程序生成完毕后,发现自带的调试终端xterm不能进行复制粘贴操作参考了Ubuntu的更换调试终端的方法,就是把deepin下的deepin-terminal 用作调试终端 ...

  5. 一款国内好用的Linux发行版?Deepin(深度)Linux

    一款国内好用的Linux发行版?Deepin(深度)Linux 目前来说,要将Linux作为桌面解决方案,对于大多数PC用户来说,当然是不现实的,毕竟Linux的主力用户群体依然是少数极客用户.说白了 ...

  6. win10中xshell的ssh链接virtualBox中的centos7

    win10下virtualbox中centos7.3与主机通过xshell的ssh建立连接的方法 2017-02-19 01:29  版权声明:本文为博主原创文章,未经博主允许不得转载.     最近 ...

  7. 全新 Mac 安装指南(编程篇)(环境变量、Shell 终端、SSH 远程连接)

    注:本文专门用于指导对计算机编程与设计(尤其是互联网产品开发与设计)感兴趣的 Mac 新用户,如何在 Mac OS X 系统上配置开发与上网环境,另有<全新 Mac 安装指南(通用篇)>作 ...

  8. windows下使用密钥登录Linux及xshell代理转发

    1.密钥登录原理 一般我们使用xshell访问远程主机(Linux主机)时,都是先请管理员给我们开一个账户,即为我们设置一个一个用户名和对应的密码,然后我们就可以使用下面的方式登录到远程主机了: 在这 ...

  9. Cmder Windows 下的终端神器

    废话 Windows 下常用的终端有两个,古老的 cmd 和功能强大但你记不住函数的 PowerShell ,两者我都用过一段时间,给我的提体验是功能够用,界面丑陋,虽然 win10 下可以通过调整背 ...

随机推荐

  1. Python——Matplotlib库入门

    1.Matplotlib库简介 优秀的可视化第三方库 Matplotlib库由各种可视化类构成,内部结构复杂,受Matlab启发 matplotlib.pyplot是绘制各类可视化图形的命令子库,相当 ...

  2. G - 土耳其冰淇凌 Gym - 101194D(二分答案 + 贪心检验)

    熊猫先生非常喜欢冰淇淋,尤其是冰淇淋塔.一个冰淇淋塔由K个冰淇淋球堆叠成一个塔.为了使塔稳定,下面的冰淇淋球至少要有它上面的两倍大.换句话说,如果冰淇淋球从上到下的尺寸是A0, A1, A2,···, ...

  3. Xshell连接Centos7

    13:53:10 2019-08-05 一个月暑假开始 学习搭建一个自己的博客 我是用阿里云的服务器搭建自己的博客 先利用XShell连接我的服务器 XShell下载地址:https://www.ne ...

  4. Redis 练习(一)

    来自<Redis 实战>第一章 对于 Redis 数据结构类型及使用不太清楚的可以参考 此链接 需求: 网站需要根据文章的发布时间和文章获得的投票数量计算出一个评分,然后按照这个评分来决定 ...

  5. Java Interger小知识

    Integer装箱与拆箱 装箱: Integer i = 10; 相当于:Integer i = Integer.valueOf(10); 拆箱: Integer i = 10; //装箱 int t ...

  6. 整数逆序输出 Python

    输入形式:123  输出形式:321 输入形式:120 输出形式:21  (整数不能以0打头) 输入形式:-123 输出形式:-321 代码: a=int(input()) b=0 if a<0 ...

  7. STS——BootDash的报错及解决

    首先先吐槽下自己,昨晚查了两小时bug,原因在于模板引擎thymeleaf编写时,  调用th:src属性时,其中的@{}表达式,花括号忘记括回来了. 这里给我的教训就是,写代码细致一点,检查的时候优 ...

  8. mpvue-新建页面、页面跳转、自适应单位

    1.mpvue怎么新建页面? (1)粘贴复制一个页面文件夹,只需要改文件夹名- 文件名不需要改,main.js里的东西不用动.export default里更改局部顶部栏配置. (2)index.vu ...

  9. 关于wget下载jdk问题解决

    问题: 直接从jdk官网下载会出现: 正在解析主机 login.oracle.com (login.oracle.com)... 156.151.58.18正在连接 login.oracle.com ...

  10. go的channel

    go语言channel go语言提供了goroutine来实现并发,go语言也提供了channel来实现并发事件之间的通信. 传统的编程语言通过共享内存来实现通信,当多个线程同时操作一个共享变量的时候 ...