文章目录
概念
- SSH:SSH (Secure Shell )Protocal的缩写,指代SSH协议
- SSH服务:SSH使用客户端-服务器模型。服务器端需要开启SSH守护进程以便接受远端的连接,而用户需要使用SSH客户端与其创建连接。SSH服务通常以22端口为标准端口使用。
- ssh服务和sshd服务:ssh服务是运行在客户端,而sshd服务运行在服务端
- 对称加密: 加密和解密的秘钥使用的是同一个.
- 非对称加密: 与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。
sshd配置文件
配置文件路径
/etc/ssh/sshd_config
大致行数 | 内容 | 作用 |
---|---|---|
17行 | Post 端口号 | 更换端口 |
19行 | ListenAddress IP地址 | 绑定IP地址为指定唯一登陆地址 |
48行 | PermitRootLogin yes|no | 关闭超级用户登陆 |
54行 | PubkeyAuthentication yes|no | 密钥认证开启 |
78行 | PasswordAuthentication yes|no | 登陆密码认证开启 |
任意行,建议行末 | DenyUsers 用户名 | 黑名单:名单中用户不允许登陆 |
任意行,建议行末 | AllowUsers 用户名 | 白名单:名单中用户允许登陆,安全级别更高 |
配置文件改变,必须要重启服务才能生效
重启服务systemctl restrat sshd.service
ssh远程登录
ssh 用户@IP
#登陆
ssh 用户@IP -X
#登陆 带图形
ssh 用户@IP 命令
#登陆 带命令操作
查看登录信息
w [选项] #显示已经登陆系统的用户列表,并显示用户正在执行的指令,读取var/run/utmp文件
-i #显示地址,此为预设值
-h #不显示各栏位的标题信息列
-s #使用简洁格式列表
-f #显示FROM项,也就是远程主机名
last #显示用户最近登录信息读取var/run/wtmp文件
last -10 #显示最近10条
lastb #登陆失败信息列表,读取var/run/btmp文件
lastb -10 #显示最近10条
修改登录端口
- 修改配置文件
vim /etc/ssh/sshd_config
#修改17行 Port 23
#端口设定功能
2. 关闭SElinux
setenforce 0
#关闭selinux
3.关闭防火墙,在没有配置防火墙的情况
systemctl stop firewalld
#关闭防火墙
- 退出,重新登录测试登录
ssh 用户@服务器地址 -p 23
#-p使用指定端口登录
关于端口查看命令
netstat #显示网络状态,可以查看开放的接口查看,不同接口对应不同功能
-a #所有连线的socket
-n #不进行DNS轮询,直接使用IP地址
-t #显示TCP传输协议的连线状况
-u #显示UDP传输协议的连线状况
-l #活跃的scoket
-p #显示PID和进程名
服务器开启非对称加密认证
在服务器中操作
- 密钥生成
ssh-keygen
#生成密码,默认回车
ls /root/.ssh/
#显示密钥生成信息,2个文件
#id_rsa(私钥);
#id_rsa.pub(公钥)
2. 服务器端绑定密钥
ssh-copy-id -i /root/.ssh/id_rsa.pub 用户@IP地址(server)
#给指定服务器(IP地址)的用户上锁,绑定公钥
ls /root/.ssh/
#authorized_key生成,提示绑定公钥成功(密钥文件);
3. 修改sshd配置文件,开启非对称密钥认证
vim /etc/ssh/sshd-config
#修改server机器的ssh原本的登陆方式的配置文件
#78行 PasswordAuthentication no[yes改为no]
#关闭server机器的ssh原本对称加密登陆的方式
- 下发私钥给客户端机器
scp /root/.ssh/id_rsa 用户@IP地址:/root/.ssh/
#拷贝私钥文件到(client)机器的用户‘.ssh’目录下
#再次登陆server机器时免密登陆
远程拷贝文件
scp命令
scp [选项] 源路径或文件 目标路径或文件
-r #递归复制整个目录
-q #不显示传输进度条
- 本地到远程
scp 本地文件 用户@IP地址:远程目录/
#输入密码;复制本地文件到指定远程目录
scp 本地文件 用户@IP地址:远程目录/文件名
#输入密码;复制本地文件到指定远程目录,并且改变文件名
scp -r 本地目录 用户@IP地址:远程目录/
#输入密码;复制本地目录及其包含文件到指定远程目录中
- 远程到本地
scp 用户@IP地址:远程目录/远程文件 本地路径/
#输入密码;复制远程文件到指定的本地目录中
scp 用户@IP地址:远程目录/远程文件 本地路径/文件名
#输入密码;复制远程文件到指定的本地目录中,并且改变文件名
scp -r 用户@IP地址:远程目录/远程文件 本地路径/
#输入密码;复制远程目录及其包含文件到指定的本地目录中
rsync 命令
rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快,但是也会忽略一些东西,文件属性,连接,设备文件等。
为复制更多内容需加入不同用参数添加
rsync [选项] 源路径或文件 目标路径或文件
-r #复制目录格式为:/dir ;复制目录本身dir以及dir中的所有文件
#复制目录格式为:/dir/ ;复制目录内容,不复制目录dir
-l #不忽略连接
-p #不忽略属性
-o #不忽略所属主
-g #不忽略所属组
-t #不忽略时间戳
-D #不忽略块文件
远程登录限制
关闭超级用户
vim /etc/ssh/sshd-config
#修改服务器的sshd配置文件
#48行PermitRootLogin no,将yes改为no
#关闭超级用户的登录
建立黑名单
黑名单:名单中用户不允许登陆
vim /etc/ssh/sshd-config
#在文件末尾进行添加内容
DenyUsers 用户名1 用户名2
#用户名1,用户名2添加进入黑名单
建立白名单
黑名单:名单中用户不允许登陆
vim /etc/ssh/sshd-config
#在文件末尾进行添加内容
AllowUsers 用户名1 用户名2
#用户名1,用户名2添加进入白名单
其他
hostname修改
hostnamectl:主机名相关操作
hostnamectl [选项]
status #显示当前主机名信息
set-chassis #设置主机平台类型名
set-deployment #设置主机机构名
set-hostname #设置主机名
set-icon-name # 设置主机Icon名