deepin下深度终端使用ssh-agent(xshell中的xagent功能)
背景:从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功能)的更多相关文章
- Deepin下phpunit安装,以及执行过程中所遇到的问题
Deepin下phpunit安装,以及执行过程中所遇到的问题 安装phpunit步骤 wget https://phar.phpunit.de/phpunit.phar chmod +x phpuni ...
- linux下将终端的输入存入文件中
代码很简单: #include <stdlib.h> #include <fcntl.h> #include <stdio.h> #include <unis ...
- Deepin 下开启SSH远程登陆
关于deepin下安装ssh以后root用户登陆报错的解决 最近刚刚接触到deepin,觉得,wow,除了mac,还有这么好看的非win系统,而且第测出那个Linux,宽容度很高,非常适合我这种比 ...
- deepin下codeblocks更改调试终端
codeblocks建立控制台程序生成完毕后,发现自带的调试终端xterm不能进行复制粘贴操作参考了Ubuntu的更换调试终端的方法,就是把deepin下的deepin-terminal 用作调试终端 ...
- 一款国内好用的Linux发行版?Deepin(深度)Linux
一款国内好用的Linux发行版?Deepin(深度)Linux 目前来说,要将Linux作为桌面解决方案,对于大多数PC用户来说,当然是不现实的,毕竟Linux的主力用户群体依然是少数极客用户.说白了 ...
- win10中xshell的ssh链接virtualBox中的centos7
win10下virtualbox中centos7.3与主机通过xshell的ssh建立连接的方法 2017-02-19 01:29 版权声明:本文为博主原创文章,未经博主允许不得转载. 最近 ...
- 全新 Mac 安装指南(编程篇)(环境变量、Shell 终端、SSH 远程连接)
注:本文专门用于指导对计算机编程与设计(尤其是互联网产品开发与设计)感兴趣的 Mac 新用户,如何在 Mac OS X 系统上配置开发与上网环境,另有<全新 Mac 安装指南(通用篇)>作 ...
- windows下使用密钥登录Linux及xshell代理转发
1.密钥登录原理 一般我们使用xshell访问远程主机(Linux主机)时,都是先请管理员给我们开一个账户,即为我们设置一个一个用户名和对应的密码,然后我们就可以使用下面的方式登录到远程主机了: 在这 ...
- Cmder Windows 下的终端神器
废话 Windows 下常用的终端有两个,古老的 cmd 和功能强大但你记不住函数的 PowerShell ,两者我都用过一段时间,给我的提体验是功能够用,界面丑陋,虽然 win10 下可以通过调整背 ...
随机推荐
- java面试基础篇-List
一.ArrayList: 底层为数组实现,线程不安全,查询,修改快,增加删除慢, 数据结构:数组以0为下标依次连续进行存储 数组查询元素:根据下标查询就行 数组增加元素:如果需要给index为10的位 ...
- Appium自动化 - 设置unicodeKeyboard: True运行脚本后,手机输入时无法调出软键盘
问题背景 做appium自动化的时候,使用了UiAutomator1驱动,然后设置了UnicodeKeyboard 执行自动化脚本之后,玩手机的时候发现平时用的输入法键盘没法调出来了 'automat ...
- P1627 [CQOI2009]中位数 题解
CSDN同步 原题链接 简要题意: 给定一个 \(1\) ~ \(n\) 的排列,求以 \(b\) 为中位数的 连续子序列且长度为奇数 的个数. 显然这段序列包含 \(b\). 中位数的定义:排序后在 ...
- 面试官: 说说你对async的理解
大家好,我是小雨小雨,致力于分享有趣的.实用的技术文章. 内容分为翻译和原创,如果有问题,欢迎随时评论或私信,希望和大家一起进步. 分享不易,希望能够得到大家的支持和关注. TL;DR async是g ...
- 原地算法(in-place algorithm)
原地算法(in-place algorithm) 在计算机科学中,一个原地算法(in-place algorithm)基本上不需要额外辅助的数据结构,然而,允许少量额外的辅助变量来转换数据的算法.当算 ...
- Spring Framework之事务管理
目录 问题 数据库事务 事务的定义 事务的目的 事务的特性 事务隔离级别 数据并发问题 事务隔离级别对数据并发问题的作用 快照读 Spring事务管理 事务管理接口 TransactionDefini ...
- Spring(三):bean的自动装配
Bean的自动装配 自动装配是Spring满足bean依赖的一种方式. Spring会在上下文中自动寻找,并自动给bean装配属性 Spring中三种装配方式 在xml中显式的配置. 在java中显式 ...
- MyBatis(四):SqlSession及其工厂类的作用域和生命周期
本文是按照狂神说的教学视频学习的笔记,强力推荐,教学深入浅出1便就懂!b站搜索狂神说即可 https://space.bilibili.com/95256449?spm_id_from=333.788 ...
- matplotlib locators
2020-03-23 17:59:59 -- Edit by yangray The Locator class is the base class for all tick locators. Th ...
- 全方位认识HBase:一个值得拥有的NoSQL数据库(一)
前言:说起HBase这门技术,在认知上对于稍微接触或使用过它的人来讲,可能只是百千数据库中一个很普通的库,大概就像我对Redis的认知一样:缓存嘛!可对于HBase,我确实是带着某些感情在的.今日突然 ...