30-SSH-telnet介绍

30-SSH-telnet介绍

SSH协议
SSH协议概念:
	SSH(Secure Shell)安全外壳协议,是一种建立在应用层基础上的安全协议,通过对密码进行加密传输验证,可以在不安全的网络服务中提供安全的传输环境,实现SSH客户端和SSH服务器端的连接,所以SSH是基于客户端-服务端模式。
	ssh 用户名@远程主机IP :首次登陆需要下载对方公钥
	示例:ssh root@192.168.0.1
  • SSH服务主要功能有哪些呢?

    1. 提供远程连接服务器的服务

    2. 对传输的数据进行加密

    那么除了SSH协议能提供远程连接服务Telnet 也能提供远程连接服务,那么区别是什么呢?

  • ssh 服务会对传输数据进行加密,监听在本地22/tcp端口,ssh服务默认支持root用户登陆

  • telnet 服务不对数据进行加密,监听在本地23/tcp端口,telnet服务默认不支持root用户登陆

服务连接方式服务数据传输服务监听端口服务登录用户
ssh加密22/tcp默认支持root用户登陆
telnet明文23/tcp默认不支持root用户登陆
安装telnet服务:#默认不支持root登录所以需要使用普通用户登陆
[root@nfs sersync]# yum install -y telnet-server
[root@nfs sersync]# systemctl start telnet.socket
SSH相关命令

​ SSH有客户端与服务端,我们将这种模式称为C/S架构,ssh客户端支持Windows、linux、Mac等平台。在ssh客户端中包含ssh|slogin远程登陆、scp远程拷贝、sftp文件传输、ssh-copy-id秘钥分发等应用程序。

#Windows连接linux
ssh -p22 root@10.0.0.61
-p			#指定连接远程主机端口,默认22端口,可以省略
root		#登陆用户,如果使用当前用户连接可以不指定用户
10.0.0.61	#远程主机服务器的IP地址

ssh root@10.0.0.41 2222		#指定端口远程连接 
#linux服务器连接linux服务器
[root@web01 mnt]#ssh 10.0.0.31		#默认使用当前登录系统的用户登陆
[root@nfs ~]# ssh -p 2222 root@10.0.0.41 #指定端口登陆

scp复制数据到远程主机命令(全量复制)

参数:
#-P 指定端口,默认22端口可不写
#-r 表示递归拷贝目录
#-p 表示在拷贝文件前后保持文件或目录属性不变
#-l 限制传输使用带看(默认kb)

推:将本地/tmp/1.txt 推送到远端服务器10.0.0.31的/tmp目录,使用对端的root用户
[root@web01 tmp]#scp 1.txt root@10.0.0.31:/tmp
[root@web01 tmp]#scp -P22 -rp  /tmp/2.txt root@10.0.0.31:/tmp

拉:将远端10.0.0.31服务器/tmp/1.txt文件拉取到本地/opt目录下
[root@web01 tmp]#scp -P22 root@10.0.0.31:/tmp/1.txt /opt
root@10.0.0.31's password: 
1.txt                                                                 100%    0     0.0KB/s   00:00    
[root@web01 tmp]#ll /opt/
total 0
-rw-r--r-- 1 root root  0 Apr 11 18:09 1.txt

限速:
scp -rp -l 8096 /opt1.txt root@172.16.1.31:/tmp

总结:
1.scp通过ssh协议加密方式进行文件或目录拷贝
2.scp连接时的用户作为拷贝文件或目录的权限
3.scp支持数据推送和拉取,每次都是全量拷贝,效率较低。
ssh秘钥远程连接
ssh远程连接两种方式:
方法1:基于用户名密码。类比刷卡输入密码
方法2:基于秘钥的方式。类比刷脸支付

默认情况下,通过ssh客户端命令登陆远程服务器,需要提供远程系统上的账号和密码,但是为了降低密码泄露的几率和提高登录的方便性,建议使用秘钥验证方式。

1

第一步:生成秘钥对 一把锁和一把钥匙
[root@backup ~]# ssh-keygen					#一直回车直到结束
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:AcDIPgRhz7FBQ6M1sL+MWAEoO3AHfbpWrRd1kdiKo2k root@backup
The key's randomart image is:
+---[RSA 2048]----+
|=*=#...    o.o   |
|=.@ @ ..  o +    |
|oB.= o ..o o     |
|o +.. . =..      |
| ..o o +So       |
|..o + E .        |
|.. + . .         |
|                 |
|                 |
+----[SHA256]-----+

[root@backup ~]# ll .ssh/
total 12
-rw------- 1 root root 1675 Apr 11 19:41 id_rsa			#私钥
-rw-r--r-- 1 root root  393 Apr 11 19:41 id_rsa.pub		#公钥
-rw-r--r-- 1 root root  687 Apr 11 17:49 known_hosts
第二步:将公钥传输至免密登陆的服务器(可以发给多个服务器)
[root@backup ~]# ssh-copy-id 172.16.1.31
或者
[root@nfs ~]# ssh-copy-id -i .ssh/id_rsa.pub 172.16.1.31

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '172.16.1.31 (172.16.1.31)' can't be established.
ECDSA key fingerprint is SHA256:GAWmXX0BZ5r4u8uCuX5ofDsPUavm28NzJ5DIcfsu8IU.
ECDSA key fingerprint is MD5:65:3c:bd:66:0d:ba:33:56:38:16:8a:35:e8:82:31:0a.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@172.16.1.31's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '172.16.1.31'"
and check to make sure that only the key(s) you wanted were added.
#查看是否将公钥传输至目标服务器
[root@nfs ~]# ll .ssh/
total 8
-rw------- 1 root root 393 Apr 11 19:47 authorized_keys		#拷贝到目标服务器会生成这样的文件
-rw-r--r-- 1 root root 178 Apr 11 17:49 known_hosts
[root@nfs ~]# cat .ssh/authorized_keys 						#公钥内容
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCzE8m9mvH1fXPIokN0ndvZO0wLqe30JJM8Rq7/CKjgI3GamusIJJfZ2ZB4yHEPJUEXHJbh07bHxD2vJddachF2yKHB12XQOItXm+Ll0N62MRK6IjWNKPdlV4fPJ+E1ar1c2ojzBwoasvzL2Zu9xpP2EVMxhMmbMtVyv5+6LpLZJRamZiJ7KTpTY+QJZ8URHp4R5CSDkwf+ukpytSkadniPPIscJwYDu2/aKvYJ1WxoEKRqgbSpQNtenVBv3Peu0yBCySB7tNma/3RAd96hF0O3r0zKQ5rFbVbPEPO+ExwkI1TdZ+IT8we/tXYsVdpSrC2C99Pu8uiRvzxeKzkjiAKl root@backup

#验证登陆:
[root@nfs ~]# ssh 10.0.0.31
The authenticity of host '10.0.0.31 (10.0.0.31)' can't be established.
ECDSA key fingerprint is SHA256:GAWmXX0BZ5r4u8uCuX5ofDsPUavm28NzJ5DIcfsu8IU.
ECDSA key fingerprint is MD5:65:3c:bd:66:0d:ba:33:56:38:16:8a:35:e8:82:31:0a.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.0.0.31' (ECDSA) to the list of known hosts.

通过免密直接在远程服务器上执行命令,命令必须在单引号''或“”里边:
[root@backup ~]# ssh 172.16.1.31 'touch test.txt'

ssh免秘钥连接案例(通过跳板机)

2

实现步骤:
1.xshell 生成秘钥对
xshell--工具--新建用户秘钥生成向导--下一步--下一步--输入用户秘钥的名称--完成--属性--公钥--复制公钥
2.把公钥传给跳板机
vim .ssh/authorized_keys(没有就手动创建,权限600)
使用xshell秘钥连接跳板机,提前关闭跳板机的密码验证
vim /etc/ssh/sshd_config
systemctl restart sshd
重新登陆跳板机
3.再在跳板机上生成密钥对
[root@nfs ~]# ssh-keygen
4.将跳板机秘钥对传给1.7和1.41
方法一:
ssh-copy-id -i .ssh/id_rsa.pub 10.0.0.7		#默认会在10.0.0.7家目录隐藏目录.ssh目录下生成authorized_keys文件
[root@web01 ~]#ll .ssh/
total 4
-rw------- 1 root root 390 Apr 12 18:30 authorized_keys
方法二:
1.拷贝跳板机.ssh/id_rsa.pub中的公钥
2.10.0.0.7 /root/.ssh目录下创建authorized_keys文件,粘贴公钥
3.authorized_keys文件赋权600
5.测试跳板机免密登陆。
免秘钥登陆出现无法登陆问题解决
如果正常配置之后还是出现了跳板机无法免秘钥登陆的情况,那么就需要检查每层目录的权限是否正确。
#切记一定不要使用-R递归修改root目录的权限和属主属组
/root/.ssh
1. .ssh目录必须是 700
2. root目录必须是 550
3. /根目录的权限必须是 555
4.authorized_keys 权限是 600

出现无法登陆问题解决

如果正常配置之后还是出现了跳板机无法免秘钥登陆的情况,那么就需要检查每层目录的权限是否正确。
#切记一定不要使用-R递归修改root目录的权限和属主属组
/root/.ssh
1. .ssh目录必须是 700
2. root目录必须是 550
3. /根目录的权限必须是 555
4.authorized_keys 权限是 600
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

atomLg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值