【Linux网络服务】SSH远程访问及控制
发布时间:2025-12-10 11:21:53
浏览次数:2
一、openssh服务器
1.1ssh协议
-
SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程 复制等功能;
-
SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令;
-
SSH 为建立在应用层和传输层基础上的安全协议。对数据进行压缩,加快传输速度。
-
SSH客户端<--------------网络---------------->SSH服务端
-
数据传输是加密的,可以防止信息泄漏
-
数据传输是压缩的,可以提高传输速度
1.2openssh
- openssH 是实现 SSH 协议的开源软件项目,适用于各种 UNIX、Linux 操作系统。
- Centos 7系统默认已安装openssh相关软件包,并已将 sshd 服务添加为开机自启动。
- 执行”systemctl start sshd”命令即可启动 sshd 服务
- sshd 服务默认使用的是TCP的 22端口
- sshd 服务的默认配置文件是/etc/ssh/sshd_config
- ssh_config和sshd_config都是ssh服务器的配置文件,二者区别在于前者是针对客户瑞的配置文件,后者则是针对服务端的配置文件。
客户端常用的ssh连接软件
-
Linux Client: ssh, scp, sftp,slogin ,
-
Windows Client:xshell, MobaXterm,putty, securecrt ,telnet
-
服务名称 : sshd
-
服务端主程序: /usr/sbin/sshd
-
服务端配置文件 : /etc/ssh/sshd_config
-
客户端配置文件: /etc/ssh/ssh_config
二、配置openssh服务端
2.1sshd_config配置文件的常用选项
vim /etc/ssh/sshd configPort 22 #监听端口为 22ListenAddress 0.0.0.0 #监听地址为任意网段,也可以指定openSSH服务器的具体IPLoqinGraceTime 2m #登录验证时间为 2 分钟PermitRootLoqin no #禁止: root 用户欲录MaxAuthTries 6 #最大重试次数为 6PexmitEmptyPasswords no #禁止空密码用户录UseDNs no #禁用 DNS 反向解析,以提高服务器的响应速度PubkeyAuthentication yes #开启密钥对验证
- ALL:代表任何客户端地址。
- LOCAL:代表本机地址。
- 多个地址以逗号分隔
- 允许使用通配符 “*”和“?”,前者代表任意长度字符,后者仅代表一个字符
- 网段地址,如“192.168.80.” 或者 192.168.80.0/255.255.255.0
2.24设置白名单与黑名单
查看哪些tcp服务可以被wrappers保护
3.2sftp 远程文件传输协议
- 由于使用了加密/解密技术,所以传输效率比普通的FTP要低,但安全性更高。操作语法sftp与ftp几乎一样。
sftp> lssftp> get 文件名 #下载文件到ftp目录sftp> put 文件名 #上传文件到ftp目录sftp> quit #退出
四、配置密钥对验证
(1)在客户端创建密钥对
ssh-keygen -t rsa
-t指定算法类型
(2)把公钥文件发送给服务端主机,即可完成密钥验证登录
ssh-copy-id -i id_rsa.pub dn@192.168.243.99# ssh-copy-id 可以指定在指定用户的家目录中生成公钥文件的目录和文件,并且目录权限700,文件权限600,只有这样密钥验证才能使用# -i 指定公钥文件
- 在生成密钥文件时设置私钥密码为空即可完成免交互登录
方法二:
通过创建ssh会话代理 (只在当前会话有效)
ssh-agent bashssh-add