配置ssh免密登陆,并使用命令行与服务器交互
时间:2022-07-25
本文章向大家介绍配置ssh免密登陆,并使用命令行与服务器交互,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
对于经常要连接服务器进行交互的人来说,有很多种方式,最多的就是使用一些比较成熟的应用,如xshell,finalshell,xftp
等.在上一篇文章中我们搭建了一个新的终端,这次来使用终端来进行服务器的交互,包括访问以及文件的上传和下载.
协议的使用
我们通常连接到服务器使用的是ssh
协议,无论使用的是什么软件,其实底层的协议以及命令是一样的.通常在我们连接服务器时需要做哪些事呢?
- 首先,既然要用到协议,那就需要协议的载体,也就是应用,对一般服务器来说,系统内置的都会有
openSSL
,openSSL的详细说明,有了这个东西我们就可以使用ssh
协议进行通信了 - 通信时身份的校验,在
ssh
通信过程中,使用到了非对称加密的算法,我们先不研究算法,直接应用,我们需要在我们的通信双方生成自己的公钥和私钥进行加密传输-
windows
生成: 可以在我们的终端中,输入ssh-keygen
连续回车,即可在我们的用户目录下创建一个.ssh
文件夹,文件夹中一般会有三个文件,一个是私钥,一个带pub
的就是我们的公钥,还有一个knowhost
是我们每次连接一个新的服务器时生成的一个标识,也就是连接时询问我们的yes or no
-
linux
生成:ssh-keygen
在~/.ssh/
文件夹下会生成同样的文件,归根揭底是因为文件系统的划分不同,逻辑上大同小异
-
连接方式
前面我们说了可以使用很多的成熟的软件进行连接,但是今天我们使用最基本的也是最底层的当然也是最方便快捷的方式,并且基于我们上次搭建的命令行的环境,
开始连接并配置免密登陆
- 打开我们的
cmder
- 使用命令
ssh name@server_ip
,name
为服务器的用户名,后面是服务器的地址,回车之后会让你输入服务器的密码,输入密码就可以进行和服务器进行交互了
- 使用命令
- 设置免密登陆
- 我们发现这样是可以不借助其他软件,但每次都要输入密码,比较的繁琐,我们配置免密登陆
- 原理 : 在我们使用其他软件连接的时候也可以进行免密连接,其实那是因为软件帮我们屏蔽掉了一些底层的东西,原理都一样,就是把自己的公钥放到需要访问的服务器的白名单內
- 开始操作: 复制我们本地的公钥,用编辑器打开然后复制
- 进入到服务器的
.ssh
文件夹在,新增文件authorized_keys
将我们复制的公钥复制进去,但是要以行的形式,如果多条公钥记得要换行,可以使用刚刚学习的cmder
里进行操作 1 2 3 4 cd ~/.ssh vim authorized_keys //在linux下的 vim 中粘贴会从默认的寄存器中读取而不是系统的,所以为了方便我们可以在 本地新建好一个文件,然后上传到服务器的对应目录里是一样的. 然后我们就可以使用命令 ssh name@ip 直接进行登录了
5. 接下来我们就可以使用
cmder
进行连接服务器了,但是有些时候并不会保持长连接,这个应该会有办法,可以查阅一下资料.
- POJ 3207 Ikki's Story IV - Panda's Trick(2-SAT)
- 3359: [Usaco2004 Jan]矩形
- 漫谈Java IO之 Netty与NIO服务器
- Java线程的几种状态
- POJ3683 Priest John's Busiest Day(2-SAT)
- javascript 面向对象(实现继承的几种方式)
- Base64 的 JavaScript 实现 js-base64
- HTTP请求详解
- 漫谈Java IO之 NIO那些事儿
- 1593: [Usaco2008 Feb]Hotel 旅馆
- BZOJ 1823: [JSOI2010]满汉全席(2-SAT)
- 3360: [Usaco2004 Jan]算二十四
- JavaScript 数据类型
- 3361: [Usaco2004 Jan]培根距离
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 多系列数据核密度图
- leetcode树之二叉树的层平均值
- 大型项目技术栈第二讲 ES6(ECMAScript 6.0)的使用
- 大型项目技术栈第三讲 ztree的使用
- JavaWeb新手训练经典项目 & 半小时高效开发 & 海量知识点涵盖 = 从这里开始
- Java反射_笔记分享
- Java注解详细总结
- 文档驱动 —— 表单组件(六):基于AntDV的Form表单的封装,目标还是不写代码
- 这就是你日日夜夜想要的docker!!!---------Docker资源控制--Cgroup
- 2020-09-26:请问rust中的&和c++中的&有哪些区别?
- python在Keras中使用LSTM解决序列问题
- python使用MongoDB,Seaborn和Matplotlib文本分析和可视化API数据
- 用于NLP的Python:使用Keras进行深度学习文本生成
- 用Python的Numpy求解线性方程组
- python用于NLP的seq2seq模型实例:用Keras实现神经机器翻译