LINUX之SSH知识梳理

blogdaren 2015-07-26 抢沙发 1810人次

SSH作用:

SSH的作用是把数据加密后传到网络上,在本机中使用ssh命令可以连接到远程主机并向远程主机发送指令和数据

SSH命令格式:

(1)开启ssh服务: 
 # /etc/init.d/sshd start

(2)命令格式:
 # ssh [-f] [-o 参数项目] [-p 非正规埠口] [账号@]IP [指令]

 -f :需要配合后面的 [指令] ,不登入远程主机直接发送一个指令过去而已;
 -o 参数项目:主要的参数项目有: ConnectTimeout=秒数 :联机等待的秒数,减少等待的时间
    StrictHostKeyChecking=[yes|no|ask]:预设是 ask,若要让 public key 主动加入 known_hosts ,则可以设定为 no 即可。
 -p :如果你的 sshd 服务时候用了非默认22端口,则需要使用此参数;
 
(3)使用指定的端口连接到主机
 # ssh root@web -p 2015

SSH执行过程:

SSH才有非对称加密算法,来对文件文件进行加密
公钥 (public key):提供给远程主机进行数据加密的行为,也就是说,大家都能取得你的公钥来将数据加密的意思;

私钥 (private key):远程主机使用你的公钥加密的数据,在本地端就能够使用私钥来进行解密。由于私钥是这么的重要, 因此私钥是不能够外流的!只能保护在自己的主机上,SSH执行过程如下:

1、服务器开启sshd服务, 会主动去查找/etc/ssh/ssh_host*,如果没有则自己生成,这样服务器就有了公钥和私钥,ssh_host_rsa_key.pub,ssh_host_rsa_key

2、客户端连接到ssh服务器,需要使用ssh这样的客户端工具, 这个时候服务器会自动把他的公钥传递给客户端, 若客户端第一次连接到此服务器,则会将服务器的公钥数据记录到客户端的用户家目录内的 ~/.ssh/known_hosts,若是已经记录过该服务器的公钥数据,则客户端会去比对此次接收到的与之前的记录是否有差异,若接受此公钥数据, 则开始计算客户端自己的公私钥数据. 也就是如果客户端接受了服务器的公钥,则客户端也自动开始计算自己的公私钥数据,如果客户端已经有了,则不需要重新生成,因为这个公钥数据可以被手动生成 的哦。

3、客户端把计算好的公钥传递给服务器端,这样服务器端就有了[自己的私钥 + 客户端的公钥], 客户端就有了[自己的私钥 + 服务器的公钥]。

4、如果客户端需要向服务器端传递数据则把数据和服务器端的公钥和在一起加密, 如果服务器端把数据传递给客户端则把数据和客户端的公钥一起加密。

5、SSH服务端配置:  /etc/ssh/sshd_config

免输密码登录到远程服务器

SSH服务提供了这样的功能,服务器和客户端连接认证不采用输入密码的方式,而是另一种特别的方式,还记得上文中我们说到,当客户端和服务器连接的时候,客户端会自动把公钥[public_key]上传到服务器,试想一下,客户端事先就把public_key上传到服务器上,服务器收到 了public_key,然后在和客户端已经上传的public_key比对一下,如果一样,那就允许客户端连接到服务器,否则不允许,具体步骤如下:

1、修改配置文件AuthorizedKeysFile
AuthorizedKeysFile .ssh/authorized_keys
# 是否允许用户自行使用成对的密钥系统进行登入行为,仅针对 version 2。
# 至于自制的公钥数据就放置于用户家目录下的 .ssh/authorized_keys 内

2、客户端生成相应地public_key,先去查看一下是否客户端已经有了public_key如果有了就不需要重新生成

3、拷贝public_Key到远程的服务器,上传到root的home目录:scp ~/.ssh/id_rsa.pub root@192.168.100.2:~/

4、将公钥放置服务器端的正确目录与文件名:AuthorizedKeysFile指定此public_Key的位置,届时服务器会根据这个值来查找public_Key,配置文件默认指定的是home目录下的.ssh/authorized_keys, 注意.ssh的权限是700!!!!!如果没有.ssh目录,则可以自己创建,然后把客户端上传过来的id_rsa.pub的内容写入到authorized_keys中

详细内容:

http://vbird.dic.ksu.edu.tw/linux_server/0310telnetssh_2.php

顺便提一下,git也是采用这种机制从而达到客户端clone仓库的时候不需要输入密码认证

版权声明:除非注明,本文由( blogdaren )原创,转载请保留文章出处。

本文链接:LINUX之SSH知识梳理

发表评论:

您的昵称:
电子邮件:
个人主页:

Free Web Hosting