SSH简介及两种远程登录的方法_ssh @-程序员宅基地

技术标签: Linux  远程登录  ssh  

目录

SSH的安全机制

SSH的安装

启动服务器的SSH服务

SSH两种级别的远程登录

SSH的高级应用


Secure Shell(SSH) 是由 IETF(The Internet Engineering Task Force) 制定的建立在应用层基础上的安全网络协议。它是专为远程登录会话(甚至可以用Windows远程登录Linux服务器进行文件互传)和其他网络服务提供安全性的协议,可有效弥补网络中的漏洞。通过SSH,可以把所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。目前已经成为Linux系统的标准配置。

SSH只是一种协议,存在多种实现,既有商业实现,也有开源实现。本文主要介绍OpenSSH免费开源实现在Ubuntu中的应用,如果要在Windows中使用SSH,需要使用另一个软件PuTTY。

SSH的安全机制

SSH之所以能够保证安全,原因在于它采用了非对称加密技术(RSA)加密了所有传输的数据。

传统的网络服务程序,如FTP、Pop和Telnet其本质上都是不安全的;因为它们在网络上用明文传送数据、用户帐号和用户口令,很容易受到中间人(man-in-the-middle)攻击方式的攻击。就是存在另一个人或者一台机器冒充真正的服务器接收用户传给服务器的数据,然后再冒充用户把数据传给真正的服务器。

但并不是说SSH就是绝对安全的,因为它本身提供两种级别的验证方法:

第一种级别(基于口令的安全验证):只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人攻击”这种方式的攻击。

第二种级别(基于密钥的安全验证):你必须为自己创建一对密钥,并把公钥放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密钥进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公钥,然后把它和你发送过来的公钥进行比较。如果两个密钥一致,服务器就用公钥加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私钥在本地解密再把它发送给服务器完成登录。与第一种级别相比,第二种级别不仅加密所有传输的数据,也不需要在网络上传送口令,因此安全性更高,可以有效防止中间人攻击。

SSH的安装

SSH分为客户端 openssh-client 和服务器 openssh-server,可以利用以下命令确认电脑上是否安装了客户端和服务器。

dpkg -l | grep ssh

如果只是想远程登陆别的机器只需要安装客户端(Ubuntu默认安装了客户端),如果要开放本机的SSH服务就需要安装服务器。

sudo apt-get install openssh-client 
sudo apt-get install openssh-server 

启动服务器的SSH服务

首先确认ssh-server是否已经启动了

ps -e | grep ssh

如图,sshd 表示ssh-server已经启动了。如果没有启动,可以使用如下命令启动:

sudo /etc/init.d/ssh start 

停止和重启ssh服务的命令如下:

sudo /etc/init.d/ssh stop  #server停止ssh服务 
sudo /etc/init.d/ssh restart  #server重启ssh服务

接下来就可以进行使用客户机远程登录服务器了~

SSH两种级别的远程登录

一、口令登录

口令登录非常简单,只需要一条命令,命令格式为: ssh 客户端用户名@服务器ip地址  eg:

ssh [email protected]

如果需要调用图形界面程序可以使用 -X 选项

ssh -X [email protected]

如果客户机的用户名和服务器的用户名相同,登录时可以省略用户名。

ssh 192.168.0.1

还要说明的是,SSH服务的默认端口是22,也就是说,如果你不设置端口的话登录请求会自动送到远程主机的22端口。我们可以使用 -p 选项来修改端口号,比如连接到服务器的1234端口:

ssh -p 1234 [email protected]

客户机必须要知道服务器的ip地址。可以在服务器端电脑上利用 ifconfig 命令查看该机的ip地址:

如果是第一次登录远程主机,系统会给出下面提示:

意思是,该远程主机的真实性无法确定,其公钥指纹为 SHA256:FFobshqrGOachj7Xp4LsJ9+xkNBlyyOe8ZIPl7K+qQI,确定想要继续连接吗?

输入yes即可。这时系统会提示远程主机被添加到已知主机列表。

 

然后会要求我们输入远程主机的密码,输入的密码正确就可以成功登录了。命令提示符会修改为远程主机的提示符,现在开始,终端中输入的命令都将在服务器中执行。

我们可以通过 Ctrl+D 或者 exit 命令退出远程登录

 

二、公钥登录

每次登录远程主机都需要输入密码是很不方便的,如果想要省去这一步骤,可以利用密钥对进行连接,还可以提高安全性。

1、在本机生成密钥对

使用ssh-keygen命令生成密钥对:

ssh-keygen -t rsa   #-t表示类型选项,这里采用rsa加密算法

然后根据提示一步步的按enter键即可(其中有一个提示是要求设置私钥口令passphrase,不设置则为空,这里看心情吧,如果不放心私钥的安全可以设置一下),执行结束以后会在 /home/当前用户 目录下生成一个 .ssh 文件夹,其中包含私钥文件 id_rsa公钥文件 id_rsa.pub

2、将公钥复制到远程主机中

使用ssh-copy-id命令将公钥复制到远程主机。ssh-copy-id会将公钥写到远程主机的 ~/ .ssh/authorized_key 文件中

ssh-copy-id [email protected]

经过以上两个步骤,以后再登录这个远程主机就不用再输入密码了。

cheers~

 

SSH的高级应用

使用远程主机不中断的跑程序

当我们利用ssh在远程主机上跑程序的时候,只要关闭了终端就会中断ssh连接,然后远程主机上正在跑的程序或者服务就会自动停止运行。我们可以利用 nohup + 需要运行的程序 使运行的程序在切断ssh连接的时候仍然能够继续在远程主机中运行。nohup即no hang up(不挂起)。

除此之外还有很多远程操作应用,包括 数据传输、端口操作(将不加密的网络连接绑定到ssh端口实现间接加密) 等等,可以参考柚子皮大神的博客:https://blog.csdn.net/pipisorry/article/details/52269785

 

 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/li528405176/article/details/82810342

智能推荐

基于FPGA和ABZ增量式编码器的转子位置检测_abz_1-程序员宅基地

文章浏览阅读5.7k次,点赞23次,收藏98次。​​前言最近在做一个使用FPGA和增量式编码器实时检测转子位置的小课题,第一次完成从硬件到软件的设计以及软硬件的联调,想做一个总结,鼓起勇气开始自己的第一次发帖。并且,在做这个课题的过程中,发现相关资料比较少,所以希望能够贡献一些自己的力量吧~如有错误还请大家批评指正!一、原理介绍增量式编码器与电机转子同轴安装,当电机旋转时,编码器会输出三路信号ABZ。A相信号和B相信号相位相差90°,根据两者的超前滞后关系,可以判断出电机的转动方向。Z相信号为零位信号,电机每转到该位置..._abz_1

论文复现-金融风控模型案例_复现金融学论文-程序员宅基地

文章浏览阅读1.3w次,点赞3次,收藏3次。金融领域是所有行业发展灵魂。当所有行业有了货币化支持后,才能融资和蓬勃发展。金融行业也不能过度发展,否则社会效率会降低,大家都去追求短期利润,资本大量进入房地产和股票市场,逃离实体经济。这时,风控诞生,风控就像一把紧箍咒,让金融资本更好为社会服务。1.机器学习论文高通过率论文,专利对于同学发展不言而喻。论文不通过,没法毕业,没法毕业就拿不到毕业证,工作也没法找。发表论文数量和质量有利于工作升迁,评职称就需要在核心期刊发布论文。在金融资本时代,诸多论文离不开统计和建模。统计学和机器学习模型可以解决诸多_复现金融学论文

JAVA面试题分享二百二十八:MySQL三大日志(binlog、redo log和undo log)详解_mysql的binlog面试题-程序员宅基地

文章浏览阅读955次,点赞16次,收藏24次。MySQL日志 主要包括错误日志、查询日志、慢查询日志、事务日志、二进制日志几大类。其中,比较重要的还要属二进制日志binlog(归档日志)和事务日志redo log(重做日志)和undo log(回滚日志)。今天就来聊聊redo log(重做日志)、binlog(归档日志)、两阶段提交、undo log(回滚日志)。MySQL InnoDB 引擎使用redo log(重做日志)保证事务的持久性,使用undo log(回滚日志)来保证事务的原子性。MySQL数据库的数据备份、主备、主主、主从都离不开。_mysql的binlog面试题

密码学选择_计算和估计出破译密码系统的计算量的方法-程序员宅基地

文章浏览阅读3.7k次。1.第一个实用的、迄今为止应用最广的公钥密码体制是(A )。A. RSA B.Elgamal C.ECC D.NTRU2.一个密码系统至少由明文、密文、加密算法和解密算法、密钥五部分组成,而其安全性是由( D)决定的。A.加密算法 B.解密算法 C.加密算法和解密算法 D.密钥3.计算和估计出破译密码系统的计算量下限,利用已有的最好方法破译它所需要的代价超出了破译者的破译能力(如时间、空间、资金等资源),那么该密码系统的安全性是( B)。A.无条件安全 B.计算安全 C.可证明安全..._计算和估计出破译密码系统的计算量的方法

卢京潮老师视频-自控原理PPT_卢京潮自动控制原理ppt-程序员宅基地

文章浏览阅读4.3k次,点赞10次,收藏4次。卢京潮老师视频配套课件自取自取!自动控制原理–卢京潮 2009 完整版西北工业大学 卢京潮教授链接:https://pan.baidu.com/s/1MwB-awndbUe3osBuexYkow提取码:6enwB站同步视频考研首选-自动控制原理(自控)-卢京潮老师_哔哩哔哩_bilibili..._卢京潮自动控制原理ppt

git版本控制工具-程序员宅基地

文章浏览阅读645次,点赞17次,收藏5次。git是一个代码版本控制工具,开发人员常用的工具,可以将各个阶段编写的代码提交到远程Git或github仓库中,每个开发人员书写不同的功能,最后使用Git命令将各个功能进行集合,有助于多人协作,提高了开发效率,并且,上传的代码,还可以进行拉取,覆盖到本地,相当于恢复快照功能。

随便推点

Android/ActionBar兼容组件ActionBarSherlock_actionbarsherlock-4.4.0/res/values/values.xml:268:-程序员宅基地

文章浏览阅读1k次。>>public abstract class ActionBarextends Object Added in API level 11仅支持3.0 以上的设备 并且google未提供该向下兼容包>>ActionBarSherlock 由http://actionbarsherlock.com/samples.html提供的开源组件目的是为了兼容2.*的设备>>何为兼容_actionbarsherlock-4.4.0/res/values/values.xml:268:5

HOME: Backward Each Word —— 反转单词_checkio backward each word-程序员宅基地

文章浏览阅读386次。CheckIO是一个通过闯关游戏学习编程的网站(Python和JavaScript)。通过解题开发新“岛屿”,同时,通过做任务获得Quest Points解锁会员题目。文章内容:题目、我自己的思路和代码以及优秀代码,如果想看大神解题可以直接跳到“优秀代码”部分。本题链接:https://py.checkio.org/en/mission/backward-each-word/题目给定一个字符串,反转单词(注意:单词的顺序不变输入: 字符串输出: 字符串举个栗子:backward_st._checkio backward each word

行列式点过程推荐多样性算法_行列式点过程dpp改进-程序员宅基地

文章浏览阅读1.8k次。推荐多样性的衡量指标是单个推荐列表中物品之间的差异程度,通过计算在同一个推荐 list 中两两 Item 之间的相似度的平均值来进行衡量。DPP(Determinantal Point Process)行列式点过程,是一种性能较高的概率模型。将复杂的概率计算转换成简单的行列式计算,通过核矩阵的行列式计算每一个自己的概率。..._行列式点过程dpp改进

T-SQL编程 函数(用户自定义函数)_ssms内置函数-程序员宅基地

文章浏览阅读1.5k次。在SSMS中会有两种函数:内置函数,用户自定义函数。内置函数,如max(),min()用户自定函数是自己编写的函数,分为标量函数,表函数先介绍一下标量函数范例:1.创建标量函数create function Greatest(@v1 float, @v2 float, @v3 float) RETURNS floatASBEGIN declare @ret float; set @ret=@v1; if @ret<@v2 begin set @ret=@v2 _ssms内置函数

关于Java的No operations allowed after connection closed问题简述、分析以及修改方案-程序员宅基地

文章浏览阅读2.3k次,点赞9次,收藏5次。Java可视化 No operations allowed after connection closed自己做java可视化没有出现这个问题,但是发现不少同学都出现这个问题了,简单概述一下这个问题解决方案,造成原因还没理解通透。以上是截取的控制台报错片段,翻译成中国人能懂的语言就是在数据库连接关闭后操作不被允许但是在经过不懈努力后,甚至给他一个全新链接之后,他依然会报错,真的脑袋疼查阅了众多csdn博客,要不就是要求改啥springboot的配置文件,要不设置MySQL链接休眠时间啥的首先我_no operations allowed after connection closed

算法笔记习题 2.3小节_输入3个整,求输出其中的最大数和最小数,换行输出两个数。-程序员宅基地

文章浏览阅读551次。算法笔记@Ada_Lake算法笔记–2.3小节算法笔记代码保留地~~~2.3小节——C/C++快速入门-&amp;amp;amp;amp;amp;amp;amp;gt;选择结构问题 A: 例题4-1 一元二次方程求根题目描述 ,求一元二次方程ax2+bx+c=0的根,三个系数a, b, c由键盘输入,且a不能为0,但不保证b2-4ac&amp;amp;amp;amp;amp;amp;amp;gt;0。程序中所涉及的变量均为double类型。输入,以空格分隔的一元二次方程的三个系_输入3个整,求输出其中的最大数和最小数,换行输出两个数。