Linux下的sshd服务及文件传输
1.配置网络:
(1)查询真机IP:
(2)设置虚拟机IP(实验中IP:server:172.25.254.188;client:172.25.254.178)
(3)改主机名(以免实验中搞混)
hostnamectl set-hostname client0.example.com
hostnamectl set-hostname server0.example.com
分别在虚拟机中执行命令;
注意:退出重新打开shell即可更改成功
2.openssh-server(让远程主机可以通过网络访问sshd服务,开启一个shell)3.客户端连接:
ssh 远程主机用户@远程主机ip
-X :开启图形
4.sshkey加密:
(1)生成公钥和私钥
(2)添加key认证:
(3)分发钥匙给client主机:
(4)检测:
注意:要关闭server的/etc/ssh/sshd_config配置文件下的
PasswordAuthentication no(关闭用户密码登录认证,通过**连接,这样对比更加清晰)
原来的配置文件:
更改之后的:
5.提升openssh的安全级别:
(每次修改配置文件保存后,记得重启sshd服务;systemctl restart sshd.service这样才会载入之前配置的文件)
openssh-server配置文件: /etc/ssh/sshd_config
PasswordAuthentication yes|no ##是否开启用户密码认证,yes为支持no为关闭
PermitRootLogin yes|no ##是否允许超级用户登陆
(‘#’是注释,去掉'#'系统就可以执行)
AllowUsers student ##用户白名单,只有在名单中出现的用户可以使用sshd建立shell
DenyUsers westos ##用户黑名单
6.systemctl命令:
systemctl status sshd ##查看指定服务的状态
systemctl stop sshd ##关闭指定的服务
systemctl start sshd ##开启指定服务
systemctl restart sshd ##重新启动服务
systemctl enable sshd ##指定服务开机自启
systemctl disable sshd ##指定服务开机关闭
systemctl
mask sshd ##冻结指定服务
systemctl
unmask sshd ##启用服务
systemctl
list-units ##列出当前系统服务的状况
systemctllist-unit-files
##列出服务的开机状态
systemctl
reload sshd ##指定服务重新加载
systemctl
list-dependencies sshd ##查看服务的依赖关系
systemctl
set-default muti-uaser.target sshd ##开机不开启图形
7.文件传输:
(1)scp:scp dir|filename 远程主机用户@远程主机IP:dir
-r 目录下的都传输给远程主机
/mnt ##包含目录/mnt
/mnt/ ##仅传输目录下的文件
(2)rsync(同步):
rsyn
参数 dir|filename 远程主机用户@远程主机IP:dir
rsyn -r ##复制目录
-l ##不忽略链接
-p ##不忽略权限
-t ##不忽略时间戳
-g ##不忽略组
-o ##不忽略普通用户
-D ##不忽略块设备
ln -s /mnt/file1 /mnt/westos ##引入链接
cp -r /dev/pts/ * /mnt ##复制块设备到/mnt