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的方 ...
随机推荐
- JavaScript中数组的方法总结
js数组元素的添加和删除一直比较迷惑,今天终于找到详细说明的资料了,先给个我测试的代码^-^var arr = new Array();arr[0] = "aaa";arr[1] ...
- [学习笔记] 多项式与快速傅里叶变换(FFT)基础
引入 可能有不少OIer都知道FFT这个神奇的算法, 通过一系列玄学的变化就可以在 $O(nlog(n))$ 的总时间复杂度内计算出两个向量的卷积, 而代码量却非常小. 博主一年半前曾经因COGS的一 ...
- 如何两周达到150行Java程序的能力--part 2
第一次课训练营课程打通了有C语言编程通往面向对象编程的道路,然而道路依然会曲折.下图是第二次训练营课程的训练大纲,从第二次开始,每次课首先进行测试. 针对作业1的训练要求,明确定义了13个具体的测试点 ...
- C#+HtmlAgilityPack—>糗事百科桌面版V2.0
最近在浏览以前自己上传的源码,发现在糗事百科桌面端源码评论区中,有人说现在程序不能用了.查看了一下源码运行情况,发现是正则表达式解析问题.由于糗百的网页版链接和网页格式稍有变化,导致解释失败.虽然可以 ...
- pentaho专题系列之kettle篇--kettle源码编译
最近看了一些kettle的文章,都是kettle7.0以前的,已经跟不上时代了.截止笔者写这篇文章的时候,github上面的已经是7.1.0.3了,而且是发行版的,最新的快照版本已经是8.0的了.基于 ...
- PHP程序中的文件锁、互斥锁、读写锁使用技巧解析
文件锁全名叫 advisory file lock, 书中有提及. 这类锁比较常见,例如 mysql, php-fpm 启动之后都会有一个pid文件记录了进程id,这个文件就是文件锁. 这个锁可以防止 ...
- SQLPlus命令
对于Oracle数据库操作主要使用的是命令行方式,而所有的命令都使用sqlplus完成,对于sqlplus有两种形式. 一种是dos风格的sqlplus:sqlplus.exe; 另一种是window ...
- ORA-00119/ORA-00132
今天在启动服务器上的ORACLE时遇到如下错误: SQL> startup; ORA-00119: invalid specification for system parameter LOCA ...
- JS基础属性跟运算
小编这周学了JS函数基础知识跟运算!!下面就迫不及待跟大家分享一下 [switch case的结构写法] 结构写法:(略) 2注意事项: ①switch结构()中的表达式.可以使用各种js支持的数据类 ...
- Mybatis分页插件PageHelper正确的使用方法(网上有2篇不够科学的文章)
今天下午在Mybatis项目中,实现分页.因为我是后加入项目中的,Leader用的是PageHelper这个组件,但是我在实际使用的过程中遇到了2个大问题. 1.http://www.oschina. ...