74.ssh服务介绍(基于密码连接)

1.SSH服务知识介绍:

01:SSH服务主要有两个软件构成:openssh和openssl;
02:openssh用于远程连接,openssl用于加密;
03:SSH连接是先进行加密,后进行连接;
04:SSH服务包含客户端命令ssh和scp远程拷贝命令;
05:SSH协议有SSH1和SSH2两个版本,SSH1有漏洞,目前都是SSH2协议;
06:当ssh客户端与ssh服务端连接时所使用的协议需一致;

2.SSH服务连接过程及原理(基于口令)

## SSH服务端【系统:CentOS 7.5  主机名:web02  内网IP地址:172.16.1.23   SSH端口:921 】
01:SSH服务端配置文件/etc/ssh/sshd_config文件中某些参数说明

HostKey /etc/ssh/ssh_host_rsa_key          #SSH服务中SSH1协议使用RSA加密技术生成的密钥
#HostKey /etc/ssh/ssh_host_dsa_key         #SSH服务中SSH1版本没有DSA加密技术,所以默认是注释了的
 
HostKey /etc/ssh/ssh_host_ecdsa_key        #SSH服务中SSH2协议使用RSA加密技术生成的密钥
HostKey /etc/ssh/ssh_host_ed25519_key      #SSH服务中SSH2协议使用DSA加密技术生成的密钥
02:目前SSH协议版本都是SSH2,且在连接时都是使用rsa加密技术来进行加密后再进行连接
03:SSH服务启动时会生成SSH1和SSH2协议产生的公钥和私钥钥,我们来看一看;

[root@web02 ~]# ll /etc/ssh/ssh_host_rsa_key*     #  这是SSH服务中SSH1协议使用RSA加密技术生成的公钥和私钥
-rw-r-----. 1 root ssh_keys 1675 Jul 26 15:23 /etc/ssh/ssh_host_rsa_key
-rw-r--r--. 1 root root      382 Jul 26 15:23 /etc/ssh/ssh_host_rsa_key.pub
 
[root@web02 ~]# ll /etc/ssh/ssh_host_ecdsa_key*   # 这是SSH服务中SSH2协议使用RSA加密技术生成的公钥和私钥
-rw-r-----. 1 root ssh_keys 227 Jul 26 15:23 /etc/ssh/ssh_host_ecdsa_key
-rw-r--r--. 1 root root     162 Jul 26 15:23 /etc/ssh/ssh_host_ecdsa_key.pub
 04:我们来看一看SSH服务启动时用ssh2协议使用RSA加密技术生成的公钥

[root@lala ~]# cat /etc/ssh/ssh_host_ecdsa_key.pub 
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPOfkYeytiLVUbg3c0xM//fXzCnLSTqS7Hdtei+lzTfPf6aSCAsRHlvdnNCk05oy8WHppjtdyc2c9AJuD9AOqv8= 

3.具体操作步骤:

01:客户端向服务端主动发起请求,并提示你是否连接,这里还没有输入yes
[root@lala ~]# ssh -p22 root@10.20.70.222
The authenticity of host '10.20.70.222 (10.20.70.222)' can't be established.
ECDSA key fingerprint is SHA256:qP2qjxurisNBzTxoKeI9fnFTF/OxNlwEtBBxAB4atb0.
ECDSA key fingerprint is MD5:49:37:02:83:f8:0b:42:b9:c6:09:cb:2e:25:a1:31:c2.
Are you sure you want to continue connecting (yes/no)? 

02:查看.ssh/known_hosts 看有没有对应服务端的公钥,没有
[root@lala ~]# cat .ssh/known_hosts 

03:客户端同意连接,输入yes,且提示你输入密码,这里还没有输入密码哈
[root@lala ~]# ssh -p22 root@10.20.70.222
The authenticity of host '10.20.70.222 (10.20.70.222)' can't be established.
ECDSA key fingerprint is SHA256:qP2qjxurisNBzTxoKeI9fnFTF/OxNlwEtBBxAB4atb0.
ECDSA key fingerprint is MD5:49:37:02:83:f8:0b:42:b9:c6:09:cb:2e:25:a1:31:c2.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.20.70.222' (ECDSA) to the list of known hosts.
root@10.20.70.222's password: 

04:查看.ssh/known_hosts 看有没有对应服务端的公钥,有。当你输入了yes之后就保证了服务端的公钥已经保存到了你的known_hosts文件中
[root@lala ~]# cat .ssh/known_hosts 
10.20.70.222 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPOfkYeytiLVUbg3c0xM//fXzCnLSTqS7Hdtei+lzTfPf6aSCAsRHlvdnNCk05oy8WHppjtdyc2c9AJuD9AOqv8=

05:这个时候你在发送链接请求,会发现前面的yes部分没有了
[root@lala ~]# ssh -p22 root@10.20.70.222
root@10.20.70.222's password: 

06:这个时候你将服务端密码输入就连接上了我的客户端ip是10.20.70.223,输入查看ip命令发现已经变了
[root@lala ~]# ssh -p22 root@10.20.70.222
root@10.20.70.222's password: 
Last login: Mon Jul 20 09:32:46 2020 from 10.20.70.1
[root@lala ~]# 
[root@lala ~]# 
[root@lala ~]# hostname -I
10.20.70.222 

参考:

https://www.cnblogs.com/chenliangc/articles/11725677.html

原文地址:https://www.cnblogs.com/liuzhanghao/p/13343482.html