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

在这种情况下,我们使用的是上面密码登录,也就是说只要知道你这个账号及密码的人都可以在任何地方登录到远程主机,因此安全性较低。
使用密钥登录则不同,他使用的是上图中的public key方式登录,这种方式涉及到一个加密算法RSA,这个算法先生成一个密钥对(公钥和私钥),
我们提供自己的公钥给远程主机,在登录的时候用私钥去认证,私钥存在本地(你自己的工作电脑上),并且在认证的时候,还需要用户输入私钥
的加密密码,其实就是一个双重保护:首先需要这个私钥文件,其次还需要知道使用私钥的密码。显然这个私钥文件是比较安全的,所以即使你使用
私钥的密码被别人知道了,它没有这个私钥文件也是白搭。so,说了一大堆就是一句话:这种方式忒安全嘞~
2.配置
使用密钥登录需要走以下几个步骤:
(a)在本地生成一个密钥对。使用xshell即可生成。xshell的工具->用户密钥管理者->生成->选择RSA,2048位->输入文件名和一个密码->完成,简单到爆。
(b)导出你的公钥为一个文件,这个东西是要发给管理员的,他需要把你的公钥放到远程主机,具体是这个文件:~/.ssh/authrized_keys,导出方法
为:工具->用户密钥管理者->找到你刚才输入和文件名->选择一个目录导出,然后把这个文件发给管理员,或者直接用记事本打开,把里面的内容发给他。
当然也许你只是想自己试试,那么你自己就是管理员,那么你还需要做更多的工作:
(c)因为你是管理员,意味着你已经拥有一台linux主机了,不管你是虚拟机,还是物理机。首先用root账号给自己建立一个普通用户(直接用root也行),
在这个用户的家目录下执行命令:ssh-keygen -t rsa,会生成一个隐藏目录(.ssh)和里面的文件,进入.ssh目录,创建一个文件authrized_keys,然后
将你的公钥串拷贝到该文件的中(如果是多个人使用一个账号登录这台主机,那么authrized_keys中可能不止一个公钥串,别把之前的内容覆盖了)。
(d)你以为你万事大吉了,立马想试试使用xshell登录看看,其实你还会遇到如下坑: (i)你是新装的系统,还没有安装ssh服务,使用xshell还是连不上,
而且连账号密码都不让你输,就给你报错了,你需要在远程主机上安装ssh服务:sudo apt-get install openssh-server。(ii)如果你想使用拖拽的方式将
公钥文件传到远程主机上,你还需要安装sz和rz:sudo apt-get install lrzsz。
这下应该可以用密钥登录了!试试看!
3.代理转发
为什么需要代理转发呢,当然是在比较复杂的场景中,如你在你的windows主机上工作,然后用xshell登录到远程主机A,并想在主机A上传递一个文件到
另一台远程主机B,那么毫无疑问你想用:rsync -e ssh -vz file username@ip:folder/,或者类似的方式来传递,当你输入这条命令后,会让你输入登录主机
B的密码,当然如果你只使用这条命令一次倒还好,假如你是在脚本里使用N次这条命令,那么你需要输N次密码,岂不抓狂。这个时候,就是代理转发登场
的时候了。
什么意思呢?你不是已经登录了主机A吗,主机A不可以有一对公钥和私钥吗,那么我们只需要如此如此:
(a)将主机A下的你的账号的公钥拷贝到主机B的那个authrized_keys文件中,主机A下你的账号的公钥就是~/.ssh/id_rsa.pub。这样做也就是表明:我想在主机
A上通过密钥登录主机B。
(b)在xshell中设置:工具 ->Xagent->设置->勾上确认ssh代理转发
这样就可以不用输入密码就能运行上面的命令了。
4.好处
好处还用多说吗~
windows下使用密钥登录Linux及xshell代理转发的更多相关文章
- [Linux] Windows 下通过SecureCRT 访问 Linux
不愿意装双系统的,可以借助虚拟机(Vmware, Virtual PC等) 安装linux 进行使用. 至于如何使用虚拟机安装Linux 这部分,很简单: 下载好需要安装的Linux ISO 镜像文件 ...
- Windows下使用PSCP从Linux下载或上传文件
1. 先下载putty包,然后解压 https://the.earth.li/~sgtatham/putty/latest/w64/putty.zip 2. 下载Linux文件到当前目录 PSCP.e ...
- windows下使用虚拟机安装linux操作系统
前言:虚拟机是开发者的好帮手,它可以帮助我们在同一台电脑上创建不同的环境,这样你就可以在不影响原有的环境下,使用另外一套新的环境去完成你的开发工作.相信不少在windows下开发的同学对此深有体会,本 ...
- 基于vagrant工具在win7下免密登录linux
一.SSH加密方式 SSH采用的是"非对称密钥系统",即耳熟能详的公钥私钥加密系统,其安全验证又分为两种级别. 1. 基于口令的安全验证 这种方式使用用户名密码进行联机登录,一般情 ...
- 密钥登录linux
一.linux 主机A登录linux主机B 在/etc/hosts文件下加入:(做硬解析) 192.168.1.60 u60 #设置u60为主机名 在节点A上创建RSA秘钥:(A上生成A主机密钥) # ...
- windows下SSH客户端远程访问Linux出现错误
- 在 Windows 下远程桌面连接 Linux - VNC 篇
VNC是由AT&T试验室开发,是一款优秀的远程控制工具软件,后来以GPL授权的形式开源.经过几年的发展,现在的VNC已经不单指某个软件,而是一类软件的通称.下面介绍Linux下常用的两个VNC ...
- CentOS6.9下ssh密钥登录配置步骤(免密码登录)和ssh-keygen 命令常用参数
密钥登录步骤(免密码登录)ssh登录提供两种认证方式:口令(密码)认证方式和密钥认证方式.其中口令(密码)认证方式是我们最常用的一种,出于安全方面的考虑,介绍密钥认证方式登录到linux/unix的方 ...
- Debian9.5下ssh密钥登录配置步骤(免密码登录)和ssh-keygen 命令常用参数
密钥登录步骤(免密码登录)ssh登录提供两种认证方式:口令(密码)认证方式和密钥认证方式.其中口令(密码)认证方式是我们最常用的一种,出于安全方面的考虑,介绍密钥认证方式登录到linux/unix的方 ...
随机推荐
- 手动修复IAT
现在我们已经了解了IAT的的工作原理,现在我们来一起学习手动修复IAT,一方面是深入了解运行过程一方面是为了避免遇到有些阻碍自动修复IAT的壳时不知所措. 首先我们用ESP定律找到加了UPX壳后的OE ...
- python中的赋值和深浅拷贝
python中,A object = B object 是一种赋值操作,赋的值不是一个对象在内存中的空间,而只是这个对象在内存中的位置 . 此时当B对象里面的内容发生更改的时候,A对象也自然而然的 ...
- vs2012中自带IIS如何让其他电脑访问
在一些场景中,我们需要让其他电脑或者说模拟器访问我们的服务进行调试,而vs2012自带的iis Express启动的程序其他设备是不能访问,iis express启动的程序路径是http://loca ...
- 【leetcode】61. Rotate List
Given a list, rotate the list to the right by k places, where k is non-negative. For example:Given 1 ...
- Akka(18): Stream:组合数据流,组件-Graph components
akka-stream的数据流可以由一些组件组合而成.这些组件统称数据流图Graph,它描述了数据流向和处理环节.Source,Flow,Sink是最基础的Graph.用基础Graph又可以组合更复杂 ...
- error MSB8008: 指定的平台工具集(v110)未安装或无效。请确保选择受支持的 PlatformToolset 值
如果你的电脑上有两个不同版本的VS,或者你的程序拷贝到别人的电脑上去运行,或者你是从别人那里拷贝来的项目,而你们俩用的VS版本不一样,就会在运行的时候出现这个问题,这个错误中的v110是VS2012使 ...
- SQL语句查询某字段不同数据的个数(DISTINCT 的使用)
今天做了一个题,学到了一个知识点: 有一个高速收费表VF,如下: 统计收费涉及的车辆有多少: SQL语句: SELECT COUNT(DISTINCT VchReg) from VF ; 其中 ...
- Akka(19): Stream:组合数据流,组合共用-Graph modular composition
akka-stream的Graph是一种运算方案,它可能代表某种简单的线性数据流图如:Source/Flow/Sink,也可能是由更基础的流图组合而成相对复杂点的某种复合流图,而这个复合流图本身又可以 ...
- - Templates should only be responsible for mapping the state to the UI. Avoid placing tags with side-effects in your templates, such as <script>, as they will not be parsed.
vue.js报错如下: - Templates should only be responsible for mapping the state to the UI. Avoid placing ta ...
- Springmvc+mybatis的定时器配置文件spring-quartz.xml
<!-- 定时器配置文件---.xml 一个cron表达式有至少6个(也可能是7个)由空格分隔的时间元素.从左至右,这些元素的定义如下: 1.秒(0–59) 2.分钟(0–59) 3.小时(0– ...