
简单说,SSH是一种网络协议,用于计算机之间的远程加密登录。
SSH 为 Secure Shell的缩写,由 IETF 的网络小组(Network Working Group)所制定,SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他 *** 作平台。SSH安装容易、使用简单,而且比较常见,一般的Unix系统、Linux系统、FreeBSD系统都附带有支持SSH的应用程序包。Windows如果需要使用SSH,可以安装PuTTY或者Cygwin。
SSH 服务基于非对称加密(public-key cryptography,也称公开密钥加密)技术实现数据加密传输。该技术会生成一对数学相关的密钥, 其中一个用于对数据进行加密,而且只能用于加密,而另一个只能用于解密 。使用加密密钥加密后的数据,只能用对应的解密密钥才能解密。而且,只知道其中一个密钥,无法计算出另一个。因此,如果公开了一对密钥中的一个,并不会危害到另一个的秘密性质。通常把公开的密钥称为公钥(public key),而不公开的密钥称为私钥(private key)。
一般来说,非对称加密的应用场景有两个:
与对称密钥加密相比,非对称加密的优点在于不存在共享的通用密钥。由于解密用的私钥无需发送给任何用户,所以可以避免密钥被劫持或篡改。而加密用的公钥即便被劫持或篡改,如果没有与其匹配的私钥,也无法解密数据。所以,截获的公钥是没有任何用处的。
当前,SSH主要采用 RSA 算法(协议 V2 默认算法)和 DSA 算法(协议 V1 仅支持该算法)来实现非对称加密技术。
SSH连接时,整个交互过程如上图。,主要可以分为三个阶段
服务端在每次启动 SSH 服务时,都会自动检查 /etc/ssh/ 目录下相关密钥文件的有效性。如果相关文件检查发现异常,则会导致服务启动失败,并抛出相应错误信息。 如果文件相关不存在,则会自动重新创建。
默认创建的相关文件及用途说明如下:
当服务器SSH服务启动,客户端也安装了SSH后,就可以进行连接了。
后续登录校验及正常的数据传输,都会通过双向加密方式进行。相关交互说明如下:
从这个连接过程中,可以看出,主要使用到两个文件夹下的内容:
在连接中的两个过程:
之所以有多组密钥,是因为使用了不同的加密算法。
客户端接收到之后,会存储在 ~/.ssh/known_hosts 文件里,查看这个文件,可以看到有一行与服务器 ssh_host_ecdsa_key.pub 内容一致。
所以, ~/.ssh/authorized_keys 里表示本机可以被哪些机器访问
~/.ssh/known_hosts 里表示本机访问过哪些机器
SSH配置文件有两个,一个是 ssh_config ,一个是 sshd_config 。前者是客户端配置,后者是服务器配置。也就是说,如果本机是作为客户端,那么就修改第一个配置,如果本机是作为服务器,那么就修改第二个配置,
一般来说,和密钥登录的配置有关的有以下几个,如果密钥配置好后无法登录,尝试配置以下三项。
其他
传统的网络服务程序,如FTP、Pop和Telnet在传输机制和实现原理上是没有考虑安全机制的,其本质上都是不安全的。因为它们在网络上用明文传送数据、用户帐号和用户口令,别有用心的人通过窃听等网络攻击手段非常容易地就可以截获这些数据、用户帐号和用户口令。而且,这些网络服务程序的简单安全验证方式也有其弱点,那就是很容易受到"中间人"(man-in-the-middle)这种攻击方式的攻击。
所谓"中间人"的攻击方式,就是"中间人"冒充真正的服务器接收你的传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被"中间人"一转手做了手脚之后,就会出现很严重的问题。中间人能够攻击,主要原因在于他能认识截取的信息,也能发出让接受者认识的信息。
使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTP、Pop、甚至为PPP提供一个安全的"通道"。
最初的SSH是由芬兰的一家公司开发的。但是因为受版权和加密算法的限制,现在很多人都转而使用OpenSSH。OpenSSH是SSH的替代软件包,而且是免费的,可以预计将来会有越来越多的人使用它而不是SSH。
1、首先大家需要创建一个xshell服务器会话并准确输入服务器的主机IP地址、端口号、连接协议,以及所使用的互联网协议版本,单击“连接”,通过xshell会话连接到远程服务器上。图1:xshell会话属性界面
2、随后使用linux命令“pwd”查看当前所在的文件夹路径,如果不在想要查看的文件路径下,则可以通过“cd”命令切换到指定路径下。
图2:切换路径
3、在xshell终端窗口中输入“vim”加要编辑的文件名称,如下图所示,进入文件编辑器中。
图3:打开文本编辑界面
4、在文件编辑页面,初始状态为只读状态,需要点击键盘上的“i”键,切换状态为插入状态,如下图红框所示,此时才可以对文件进行编辑和输入内容,输入完成后点击Esc退出编辑状态,输入“:wq!”进行保存即可。
图4:切换输入状态
二、xshell查看文件命令
1、如果仅仅只是为了查看远程服务器内的文件,可以直接使用“cat”加要查看的文件名称或路径命令进行查看。
图5:cat命令查看文件
2、除了cat命令以外,还可以使用“less”或者是“more”命令查看文件,more命令和less命令均可以用于在终端页面显示文件,不同的是它们是按页进行显示而不是一次性全部显示,对于显示大文件效果更好。
其中less命令允许用户在显示文件时可以向前翻页或向后翻页,more命令只允许向后翻页。
图6:less和more查看文件
三、xshell在文本编辑器中打开远程文件
上述讲到xshell可以直接查看和编辑远程服务器上的文件内容,但是这种在终端查看和编辑的 *** 作对于新手而言可能不是很方便,那么能不能直接调用本地的文本编辑器进行查看编辑呢?
1、首先大家需要使用以上说到的“cat”命令将文件内容在终端上全部显示出来,随后右键终端界面,选择“到文本编辑器”-“当前屏幕”。
图7:到文本编辑器
2、此时就可以将终端当前屏幕中所展示的文件内容全部在文本编辑器上打开并编辑,如下图所示。
图8:文本编辑器查看终端内容
上述就是有关xshell怎样在文件中输入内容,xshell查看文件命令的 *** 作教程,xshell通过SSH协议使得用户可轻松安全地连接到远程机器上并执行 *** 作,无桌面模式也使得网络基本不会成为远程连接的瓶颈限制。小伙伴们如果也有远程连接Linux系统需求,可以前往xshell中文网站上下载软件。
1. 安装git,从程序目录打开 "Git Bash"2. 键入命令:ssh-keygen -t rsa -C "email@email.com"
"email@email.com"是github账号
3. 提醒你输入key的名称,输入如id_rsa
4. 在C:\Documents and Settings\Administrator\下产生两个文件:id_rsa和id_rsa.pub
5. 把4中生成的密钥文件复制到C:\Documents and Settings\Administrator\.ssh\ 目 录下。
6. 用记事本打开id_rsa.pub文件,复制内容,在github.com的网站上到ssh密钥管理页面,添加新公钥,随便取个名字,内容粘贴刚
才复制的内容。
7. ^_^ OK了
需要注意步骤2中产生的密钥文件在当前用户的根目录,必须把这两个文件放到当前用户目录的“.ssh”目录下才能生效。
在windows中只能在命令行下输入创建"."开头的文件夹。命令为 mkdir .ssh
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)