SSH远程连接服务(五)

2年前未命名119
SSH远程连接服务(五) 熬夜泡枸杞 于2023-02-05 23:03:27发布 480 收藏 9 分类专栏: Integrated architecture 文章标签: ssh 服务器 linux Integrated architecture 专栏收录该内容 21 篇文章 1 订阅 订阅专栏

文章目录 1. 端口号2. ssh与telnet区别3. telnet服务4. ssh相关命令4.1 ssh命令4.2 scp远程拷贝命令4.3 rz和sftp 5. 在Linux中ssh的秘钥免密登录6. xshell中秘钥免密登录,限制root登录(安全优化)7. 自动化脚本8. 自我总结

1. 端口号 FTP 20/21 明文协议,文件传输协议,基于TCP SSH 22 安全外壳协议,远程连接,加密 Telnet 23 明文协议,远程连接 SMTP 25 简单邮件传输协议,基于 TCP DNS 53 DHCP 67/68/546 动态主机设置协议,C(67),S(68),546(V6) TFTP 69 简单文件传输协议,基于UDP HTTP 80 超文本传输协议 SNMP 161/162 简单网络管理协议,基于UDP HTTPS 443 超文本传输安全协议 Rsync 873 Redis 6379 Zabbix 10050 10051 2. ssh与telnet区别 SSH: 加密传输 支持root登录 远程连接服务 Telnet: 明文传输 不支持root登录(需要创建普通用户) 远程连接、路由器、交换机 3. telnet服务

安装和启动telnet服务

安装telnet服务: [root@backup ~]# yum -y install telnet-server 启动telnet服务: [root@backup ~]# systemctl start telnet.socket

创建一个普通用户,用于测试

远程连接 telnet 不支持root 添加一个普通用户 [root@backup ~]# useradd oldboy [root@backup ~]# echo 1|passwd --stdin oldboy

windows远程连接

telnet 10.0.0.41 输入用户:oldboy 输入密码:1 4. ssh相关命令 4.1 ssh命令

1.提供远程连接服务器的服务、2.对传输的数据进行加密

用xshell远程登录方式

第一种使用方式 ssh 10.0.0.41(取决于当前执行此命令的用户) 连接过程中 需要输入用户名和密码信息 第二种使用方式(标准写法) ssh root@10.0.0.41 连接过程中只需要密码 第三种使用方式(带端口的方式 端口不是默认的22了) 修改ssh端口在尝试ssh远程连接 [root@backup ~]# systemctl restart sshd [root@backup ~]# grep Port /etc/ssh/sshd_config #Port 22 Port 2222 ssh root@10.0.0.41 2222 第四种连接方式 指定端口方式远程连接服务器 Linux -----------> Linux服务器 使用-p 参数指定端口号 ssh root@10.0.0.7

小提示:

windows—> Linux

ssh root@10.0.0.41 # 默认连接22端口 ssh root@10.0.0.41 2222 # 指定端口连接

Linux----> Linux

ssh root@10.0.0.41 # 默认连接22端口 ssh -p2222 root@10.0.0.41 # 指定端口连接 4.2 scp远程拷贝命令

scp是覆盖式、增量的,与rsync远程传输方式类似

(1) scp的一些参数

-P 指定端口,默认22端口可不写 -r 表示递归拷贝目录 -p 表示在拷贝文件前后保持文件或目录属性不变 -l 限制传输使用带宽(默认kb) /8 ->KB /1024 ->MB

(2)scp获取、下载

[root@backup ~]# scp root@172.16.1.31:/etc/exports ./

(3)scp推送、上传

[root@backup ~]# scp exports root@172.16.1.31:/tmp/

(4)限速上传的速度

带宽默认kb 80960kb➗8=10120KB➗1024=10MB 带宽为20Mb,下载速度为2.50MB/s

[root@backup ~]# scp -l 40960 1.txt root@172.16.1.31:/tmp root@172.16.1.31's password: 1.txt 100% 300MB 5.1MB/s 00:59

小提示: 不管是上传文件还是目录都带上-r这样就不会错了

[root@backup ~]# scp -rp 1.txt root@172.16.1.31:/tmp 4.3 rz和sftp rz 和 sftp rz 拷贝文件效率高,不支持超过4个G以上的文件不支持断点续传 sftp 远程传输,特别适合拷贝大文件。 ssh提供的客户端命令: ssh 远程连接 (非常重要) scp 远程拷贝 (非常重要) 和 rsync的远程传输方式一模一样 (1)scp通过ssh协议加密方式进行文件或目录拷贝。 (2)scp连接时的用户作为为拷贝文件或目录的权限。 (3)scp支持数据推送和拉取,每次都是全量拷贝,效率较低。 sftp 远程传输 (一般般) Xftp xftp工具里面使用的是sftp协议 5. 在Linux中ssh的秘钥免密登录

(1)生成密钥对,公钥、私钥

[root@m01 ~]# ssh-keygen -C xuliangwei@qq.com (-C可不加) Enter file in which to save the key (/root/.ssh/id_rsa):按回车 ---存放在当前用户的.ssh/id_rsa Enter passphrase (empty for no passphrase):按回车 ---问是否给当前密钥设置密码,不需要 -t是指定类型(可以省略不写) -C是说明信息

(2)将公钥推送到你需要连接的主机,第一次需要输入对端主机的密码

[root@m01 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.1.31 这个-i 选项值得是你所要推送公钥的位置在哪里,推动到对方的/root/.ssh/authorized.keys这个文件里面

(3)通过ssh命令测试连接是否需要密码

[root@m01 ~]# ssh 172.16.1.31 Last login: Wed Jan 9 10:39:16 2019 from 172.16.1.61 [root@nfs ~]# 切换用户成功了

6. xshell中秘钥免密登录,限制root登录(安全优化)

SSH作为远程连接服务,通常我们需要考虑到该服务的安全,所以需要对该服务进行安全方面的配置。

1.更改远程连接登陆的端口 6666 2.禁止ROOT管理员直接登录 3.密码认证方式改为密钥认证 4.重要服务不使用公网IP地址 5.使用防火墙限制来源IP地址

以上的安全策略需要修改服务端的ssh的配置文件/etc/ssh/sshd_config ,把上面的内容写在配置文件的上面,写在下面不会生效。

Port 6666 # 变更SSH服务远程连接端口√ PermitRootLogin no # 禁止root用户直接远程登录√ PasswordAuthentication no # 禁止使用密码直接远程登录√ UseDNS no # 禁止ssh进行dns反向解析,影响ssh连接效率参数√ GSSAPIAuthentication no # 禁止GSS认证,减少连接时产生的延迟√

(1)禁止root用户远程登录,只要在配置文件中配置了,所以要创建普通用户,把xshell生成的公钥,放在oldboy用户的.ssh/authorized_keys中,注意.ssh的权限是700,authorized的权限是600。 注意: 在公司中root在/etc/sudoers 或者执行命令visudo在配置文件中书写 oldboy ALL=(ALL) NOPASSWD:/bin/su 用xhell中秘钥的形式登上普通用户后,执行sudo su - 直接切换到root

创建好之后,可以在这里查看

(2)xhell生成的公钥粘贴复制到/home/oldboy/.ssh/authorized_keys

(3) 这样跳板机用oldboy通过公钥的方式进行连接,因为在/etc/ssh/sshd_conf配置文件中设置了不允许密码登录,禁止root不能远程登录。这是用秘钥的方式登录到普通用户的oldboy,直接用sudo su - 的方式直接登录

7. 自动化脚本 监听地址: 监听本地的哪个IP 我的服务要运行在哪个IP地址上 0.0.0.0 表示网卡的所有地址 127.0.0.1 172.16.1.41 10.0.0.41 yum -y install expect [root@backup ~]# cat test.ex #!/usr/bin/expect set ip 10.0.0.31 set pass 1 set timeout 30 spawn ssh root@$ip expect { "(yes/no)" {send "yes\r"; exp_continue} "password:" {send "$pass\r"} } interact yum -y install sshpass sshpass -p 123456 ssh root@10.0.0.31 8. 自我总结

(1)echo nneettssttaatt --llnnttpp|sed -r ‘s#(.)(.)#\1#g’ 去重

(2)网络设备用telnet不用加密,网络的设备都是内部网络调试的。 xshell工具还是调用底层的ssh命令 ssh 10.0.0.41 22

(3) 在Linux的客户端使用命令:ssh 172.16.1.31 远程登录的用户是谁,取决于当前用户是谁 建议还是加上ssh root@172.16.1.31

(4)对外访问的服务器尽量改ssh的端口号,内网的为了方便 连接不用修改ssh的端口号

(5) 小文件的传输非常影响带宽,建立了很多次的tcp连接,所以 把小文件打包压缩,在进行传输就非常快了

(6)scp -r 选项是用来传输目录的,不管是不是加上-r选项,这样就不会报错。csp连接时需要知道用户的密码,不安全,拷贝的 效率非常低

(7)修改网卡小技巧 sed ‘s#200#61#g’ /etc/sysconfig/network-scripts/ifcfg-eth[01] 先看一下,然后再加上选项-i

(8)ifdown eth1 && ifup eth1 重启网卡

(9)ssh root@donglinux.com 再ssh配置文件中(/etc/ssh/sshd_config),如果禁止root登录,那么登陆完普通用户之后,能su - root吗???可以

(10)写配置文件的最上面,这样才能生效 改完端口之后 10.0.0.61 6666 再window不用加-p参数!!!! 再xshell中需要使用-p指定端口号,如果不写则默认是22端口

(11).ssh的服务权限是700 ,这样才能正常连接免密,authorized.keys的文件权限是600

标签: [db:标签TAG]

相关文章

做 SQL 性能优化真是让人干瞪眼

做 SQL 性能优化真是让人干瞪眼...

Python图像处理【8】使用低通滤波器模糊图像

Python图像处理【8】使用低通滤波器模糊图像...

再不跳槽,就晚了

再不跳槽,就晚了...

看ChatGPT这形势,留给我们开发人员的时间不多了

看ChatGPT这形势,留给我们开发人员的时间不多了...

算法该不该刷?如何高效刷算法?

算法该不该刷?如何高效刷算法?...

python小游戏——像素鸟代码开源

python小游戏——像素鸟代码开源...