SSH免密登录详解

SSH免密登录详解

SSH(Security Shell)安全外壳协议,是较为可靠的,专为远程登录会话和其他网络服务提供安全保证的协议。

​ 对于传统的网络服务程序(例如,FTP,Telnet等)来说,其本质上并不是安全的,主要原因在于,这些网络应用程序在网络上都是直接使用明文传输口令和数据的,对于别有用心的人来说,这些口令和数据是很容易被截获的。另外,这些网络服务程序的安全验证方式也是存在弱点的,非常容易受到中间人(Man-In-The-Middle)这种方式的攻击,简而言之,就是中间人冒充真正的服务器接收你传输的数据,然后,再将数据转发给真正的服务器,通过这种方式中间人就可以神不知鬼不觉地拿到你所有数据。

​ 通过使用SSH,则可以将所有传输的数据及口令进行加密,从而防止中间人攻击,还可以防止DNS和IP欺骗,另外,使用SSH还有加快传输速度的好处,原因在于,SSH是可以对数据进行压缩的。

SSH安装详解

SSH是安全外壳协议,而open-ssh则是SSH的开源实现,CentOS通常是默认安装了open-ssh的。

整个SSH服务是包含SSH服务端(openssh-server)和SSH客户端(openssh-clients)的,常用的ssh命令就是客户端一部分。

SSH服务端与SSH客户端之间的关系:节点A想要控制节点B,则节点A上需要安装SSH客户端,而节点B上需要安装相应的SSH服务端,这样,节点A才能向节点B发送控制命令和数据。

# 安装openssh-server
[root@cos1 ~]# yum install -y openssh-server
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.ustc.edu.cn
 * extras: mirrors.ustc.edu.cn
 * updates: mirrors.ustc.edu.cn
Package openssh-server-7.4p1-21.el7.x86_64 already installed and latest version
# 启动openssh-server
[root@cos1 ~]# systemctl start sshd.service
# 安装openssh-clients
[root@cos1 ~]# yum install -y openssh-clients
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.ustc.edu.cn
 * extras: mirrors.ustc.edu.cn
 * updates: mirrors.ustc.edu.cn
Package openssh-clients-7.4p1-21.el7.x86_64 already installed and latest version

openssh服务的主配置文件路径:/etc/ssh/sshd_config

# SSH-Server常见的配置项
# 如果SSH连接提示端口不可用,可以在改文件中查看SSH端口,端口没问题,就要考虑SSH服务是否正常启动了
# SSH客户端与服务端连接的默认端口号
Port 22

默认情况下,SSH服务提供了以下两个非常有用的功能:

1、类似Telnet远程连接服务器功能,即SSH服务(安全可靠的远程登录会话服务)

# 远程连接服务
ssh user@hostname/ip

2、类似FTP的sftp-server服务,借助SSH协议来传输数据,提供更安全的SFTP服务(vsftp, proftp).

# 文件拷贝服务
scp files user@hostname:/path/

SSH免密登录配置

​ 对于分布式环境组件(例如,Hadoop,HBase等)来说,组件的主/从节点通常需要远程登录到集群中其他节点并执行Shell命令,如果不使用SSH,则集群安全就无法保证,使用SSH服务的话,又需要用户输入目标服务器的免密,而主/从节点何时访问其他节点是不可控的,而且,频繁的需要用户输入密码也是不可行的,这时候,免密登录就非常重要的。

主机A通过SSH实现免密登录主机B所需的配置过程大致可以分为以下两步:

1、主机A在本地通过加密算法生成公钥和私钥

生成密钥.png

通过rsa算法生成公钥和私钥key对,默认情况下,身份验证信息(也就是私钥)保存在/user/.ssh/id_rsa文件下,而公钥信息则保存在/user/.ssh/id_rsa.pub文件中。

[root@cos1 .ssh]# pwd
/root/.ssh
[root@cos1 .ssh]# ll
total 8
-rw-------. 1 root root 1679 Jun 22 00:04 id_rsa
-rw-r--r--. 1 root root  391 Jun 22 00:04 id_rsa.pub

2、将主机A的公钥拷贝到主机B的授权文件(authorized_keys)中

# 通过ssh-copy-id命令将本地服务器公钥上传到指定服务器
[root@cos1 ~]# ssh-copy-id root@cos
... ... ... ... ... ... 
Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'root@cos'"
and check to make sure that only the key(s) you wanted were added.
# 现在,可以通过ssh root@cos访问主机cos了
[root@cos1 ~]# ssh root@cos
Last login: Thu Jun 18 06:38:25 2020 from 192.168.58.1
[root@cos ~]# 

为了安全起见,通常将保存具体哪些主机可以免密访问当前主机的授权文件authorized_keys文件设置为及root具有查看和修改的权限,用户组及其他人无权访问。

通过ssh-copy-id将主机A的公钥拷贝到主机B之后,本质上,是在主机B的授权文件中添加了主机A的公钥。

[root@cos .ssh]# ll
total 8
-rw-------. 1 root root 781 Jun 22 00:16 authorized_keys
-rw-r--r--. 1 root root 176 Jun 18 07:34 known_hosts

注意:

1、免密登录,是用户对用户的,切换为其他用户时,仍需要输入密码

2、免密登录是单向的,也就是说,主机A将公钥拷贝到主机B后,主机A可以免密登录主机A,而主机B登录主机A时仍然需要输入密码

图解SSH免密登录原理

通过上面一顿操作,主机A就可以免密登录到主机A了,感觉有点神奇,那么,免密登录到底是怎么实现的呢?也就是说,SSH协议又到底是什么样子呢?且看下图分解~

免密登录原理.png

上图便是整个SSH免密登录的配置及原理图:

1、ServerA生成公钥并上传到ServerB上

2、Step 1: ServerA发送链接请求到ServerB

3、Step 2: ServerB在authorized_key中检索ServerA的公钥,随机生成字符串,随后利用公钥对字符串进行加密,并发送给ServerA

4、Step 3: ServerA接收到密文后,利用私钥进行解密,并将内容以明文的形式发送给ServerB

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,133评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,682评论 3 390
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,784评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,508评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,603评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,607评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,604评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,359评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,805评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,121评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,280评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,959评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,588评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,206评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,442评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,193评论 2 367
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,144评论 2 352