1.sshd简介
sshd=secure shell ##可以通过网络在主机中开机shell的服务 客户端软件:sshd 连接方式:ssh username@ip ##文本模式的链接
ssh -X username@ip ##可以在链接成功后开启图形
注:第一次链接陌生主机要建立认证文件,会询问是否建立,输入yes。
第二次建立已经生成了~/.ssh/know_hosts文件所以不需要再次建立。
scp file root@ip:dir ##上传
scp root@ip:file dir ##下载
真机:]
打开shell,输入命令:ip addr show br0(在虚拟机里应为eth0) ##查看真机ip
可以通过命令:ping 虚拟机地址 观察是否连接成功。成功会出现数据在虚拟机真机之间往返所需时间。否则为连接失败。
虚拟机:
输入命令:`nm-connection-editor`,出现选框,删除后增加,选择创建,出现选框创建,出现Ethernet在Device MAC address:选择默认选项 .IPv4设置,先选择方法为Manual,输入虚拟机IP号(虚拟机前3个段,最后一位为0-254,由于255号为广播地址,被占用所以不能使用),NETmask 设置为24 保存。
连接:
在虚拟机查看虚拟机ip,然后在真机上输入命令:ssh 虚拟机用户名@虚拟机ip,询问是否连接,连接后输入虚拟机中该用户的登陆密码,确定登陆,可以直接通过真机使用虚拟机。
在此例中虚拟机为服务器端为sshd软件,远程主机为客户端使用ssh软件。


由于如果有人知道了一个主机的ip地址,又恰好知道了其用户密码,那就可以任意的登陆到主机上,这是十分的不安全的。
所以可以通过加入RSA密码认证,更安全一些。至于链接方式:是先在服务器端生成一个RSA秘钥。
将生成的id-rsa.pub复制到生成主机上,在将生成的id-rsa密钥发送到另一台主机上。
这是另一台主机会直接链接本机,并且第一次需要输入密码,第二次链接就可以免密通信。
主机命令:
ssh-keygen ##生成密钥流
ssh-copy-id -i /root/.ssh/id_rsa.pub 用户名@本机主机地址 ##给本机加锁
scp /root/.ssh/id_rsa 用户名@另一主机地址:/root/.ssh/ ##分配密钥




命令如下:
vim /etc/ssh/sshd_config ,修改以下行数:
78 PasswordAuthentication yes/no ##是否允许用户通过登陆系统密码做登陆
48 PermitRoolLogin yes/no ##是否允许超级用户通过sshd服务认证登陆
52 AllowUsers student westos ##设置用户白名单,不在白名单用户不可登陆
53 DenyUsers student westos ##设置用户黑名单,在黑名单用户不可登陆
注:登陆时所用的用户名时被连接主机的用户名,要分清楚使用的到底是哪一台主机的用户和密码。并且一旦设置了白名单/黑名单,超级用户若不在也不可登陆。
实现方法:vim修改配置文件,将配置文件进行修改。通过一台客户端机链接服务端(ssh 用户名@ip地址),但是需要注意链接语句中的用户时服务机上的用户。 修改是否允许用户登陆系统密码登陆将第78行中的no修改到yes:




w ##查看正在使用当前系统的用户
-f ##查看使用来源
-i ##显示ip
等同于查看 /var/run/utmp
last
等同于查看 /var/log/wtmp
##查看使用并退出的用户信息
lastb
等同于查看 /var/log/btmp
##查看试图登陆却没成功的用户信息

系统权限控制:
systemctl ##服务器控制命令
systemctl status sshd(服务器名) ##查看服务器状态
systemctl start sshd ##开启服务
systemctl stop sshd ##关闭服务
systemctl restart sshd ##重启服务器
systemctl reload sshd ##重载服务器(相当于信号1,在不关闭服务器情况下,对进程的文件进行重新加载)
systemctl enable sshd ##设定服务器在开机时自启
systemctl disable sshd ##设定服务器在开机时不自启
systemctl list-units ##列出已经开启服务当过前状态
systemctl list-unit-files ##列出所有服务开机启动的状态(disable enable static表示静态不会更改)
systemctl list-dependencies ##列出服务的依赖(在使用该服务前必须存在并开启的进程)
systemctl set-default multi-user.target ##设定系统启动级别为多用户模式(无图形)
systemctl set-default graphical.target ##设定系统启动级别为图形模式
实验方法:前几条命令类似于虚拟机的启动,在设置重启时可以看
