【SSH服务】远程连接管理服务SSH
一、远程连接管理服务SSH
1、了解服务端和客户端
服务端:提供服务
客户端:享受服务
2、了解端口号设定
端口范围0~65535.
- 1~255:一般为知名端口号。如:下面表格所示
- 256~1023:通常由Unix系统占用来提供特定的服务
- 1024~5000:客户端的临时端口,随机产生
- 大于5000:互联网上其他服务预留
协议名 | 传输协议 | 端口号 |
ftp文件传输协议:数据连接 | tcp | 20 |
ftp:控制连接 | tcp | 21 |
ssh、scp | tcp | 22 |
NTP时间同步服务 | udp | 123 |
telnet远程登录 | tcp | 23 |
smtp email客户端 | tcp | 25 |
POP3 | tcp | 110 |
dns服务器与客户端交互 | udp | 53 |
dns服务器与辅助域名服务器交互 | tcp | 53 |
TFTP | udp | 69 |
NNTP | tcp | 119 |
IMAP3 | tcp | 220 |
nfs默认udp,可以设置tcp | udp | 2049(默认) |
vnc(默认端口5900,真正访问端口=5900+1) | tcp | 5901 |
http | tcp | 80 |
https | tcp、udp | 443 |
tomcat | 8080 | |
oracle数据库 | 1521 | |
mysql数据库 | 3306 | |
sql server对外服务 | tcp | 1433 |
sql server接收请求者返回的数据 | udp | 1434 |
3、SSH服务作用
用于Linux下远程连接管理服务器的安全协议。端口号22,C/S架构。
- 服务端(开启ssh服务):安装软件openssh-server
- 客户端(专门的客户端工具):Windows(SecureCRT、Mobaxterm);Linux(openssh-clients)
查看默认是否开启自启:
[root@rhel8 ~]# systemctl list-unit-files | grep "sshd.service" anaconda-sshd.service static sshd.service enabled
4、修改ssh服务默认端口
1)查看ssh服务端口
netstat命令:用于查看网络连接状态
-n:不显示名称
-l:查看监听状态
-t:TCP协议
-p:查看程序名
[root@rhel8 ~]# netstat -nltp | grep :22
[root@rhel8 ~]# lsof -i :22
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 1090 root 4u IPv4 30100 0t0 TCP *:ssh (LISTEN)
sshd 1090 root 6u IPv6 30102 0t0 TCP *:ssh (LISTEN)
2)查看ssh的配置文件
# -l是留出所有改软件的文件,-c只列出配置文件
[root@rhel8 ~]# rpm -qc openssh-server
/etc/pam.d/sshd
/etc/ssh/sshd_config
/etc/sysconfig/sshd
3)修改配置文件
[root@rhel8 ~]# vi /etc/ssh/sshd_config
在17行下添加一行
Port 10022
4)重启服务
[root@rhel8 ~]# systemctl restart sshd.service
重启时报错根据提示查看日志。如果是权限错误。
查看防火墙状态是否关闭;
查看安全连接日志tail -20 /var/log/secure;
查看系统日志tail -20 /var/log/messages;根据日志提示发现是SELinux问题。
查看SELinux的设置:需要将其设置为disabled
[root@rhel8 ~]# setenforce 0
[root@rhel8 ~]# getenforce
Disabled
最后再重启SSH服务,问题解决。
5)测试SSH端口是否修改成功
[root@rhel8 ~]# netstat -nltp | grep sshd
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 3709/sshd: root@pts
tcp 0 0 127.0.0.1:6011 0.0.0.0:* LISTEN 4454/sshd: root@pts
tcp 0 0 0.0.0.0:10022 0.0.0.0:* LISTEN 4638/sshd
tcp6 0 0 ::1:6010 :::* LISTEN 3709/sshd: root@pts
tcp6 0 0 ::1:6011 :::* LISTEN 4454/sshd: root@pts
tcp6 0 0 :::10022 :::* LISTEN 4638/sshd
[root@rhel8 ~]# lsof -i :10022
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 4638 root 5u IPv4 66057 0t0 TCP *:10022 (LISTEN)
sshd 4638 root 7u IPv6 66059 0t0 TCP *:10022 (LISTEN)
注意:客户端用10022端口连接
5、基于SSH服务的命令
1)Linux下客户端工具ssh
需要先安装client客户单软件:openssh-clients
# 查看是否安装
[root@rhel8 ~]# rpm -q openssh-clients
openssh-clients-8.0p1-3.el8.x86_64
# 功能1:客户端远程连接登录Linux服务器(ssh服务)端
ssh 【选项】用户名@远程IP
选项:
-l:指定访问用户
-p:指定端口号
[root@rhel8 ~]# ssh -p 10022 root@192.168.187.100
或
[root@rhel8 ~]# ssh -p 10022 -l root 192.168.187.100
# 功能2:客户端远程访问Linux服务器执行相应的命令(未登录)
ssh 【选项】 远程IP 执行相应命令
[root@rhel8 ~]# ssh -p 10022 root@192.168.187.100 hostname
rhel8.tourby.cn
2)Linux下远程拷贝命令scp
# 用法1:将本地文件远程拷贝到远程(push)
scp 【选项】 本地文件 远程服务IP:/路径
选项:
-P:端口号
-r:递归拷贝
[root@rhel8 ~]# scp -P 10022 -r /tanbaobao/ 192.168.187.100:/root/
# 用法2:将远程文件拷贝到本地(pull)
scp 【选项】远程服务IP:/文件 本地路径
[root@rhel8 ~]# scp -P 10022 -r root@192.168.187.100:/root/ /tanbaobao/
# 如果拷贝速度慢,可以将远程IP地址加入到/etc/hosts文件下
# 如果用root以外的用户拷贝提示权限不允许,需要设置chmod或setfacl权限让该用户有可写w的权限
不幸运的人也有被眷顾的权利