Linux远程连接服务sshd详解
sshd服务
sshd简介
-
sshd=Secure Shell,意思就是可以通过网络在主机中开启shell的服务
-
客户端的软件为:sshd——通过该软件实现远程连接
-
连接方式:
ssh [email protected] ## 只是文本方式的连接
ssh [email protected] -X ## 连接成功后可以开启图形
注意:第一次连接时需要建立认证文件,需要yes确定,再次连接时已经生成~/.ssh/known_hosts文件记录,不需要输入yes
vim /etc/host.deny
设置禁止相关服务的用户ip
vim /etc/hosts.allow
允许某ip连接,优先级比deny高,但我没有实验成功,因为怎么连都可以连通?这是个问题,待解决!!!
- 远程复制scp:可以把虚拟机文件考到别的虚拟机或真机
上传: scp 文件 [email protected]目的ip:绝对路径
下载: scp [email protected]目的ip:绝对路径 文件夹
sshd的key认证
作用:可以让具体的人进行远程连接,更安全!
在服务端生成公钥秘钥对
注意:这里的公钥相当于锁,秘钥相当于钥匙
ssh-******
图中三步确认的分别是:
1.确定生成目录
2.是否需要密码
3.确认密码
上锁动作:在服务端加密sshd服务
ssh-copy-id -i /root/.ssh/id_rsa.pub 用户@服务端IP
实例:为了试验验证更有效果,我们关闭原始密码登录验证!提高安全性,不让别的用户试服务器秘密
修改服务端/etc/ssh/sshd_config
密码登陆认证 PasswordAuthen设为no ,就只能有**的登陆了
vim /etc/ssh/sshd_config
重启一下服务:
两种方法选一种:
systemctl restart sshd.service
systemctl reload sshd.service
分发秘钥
服务端上了锁,这时由服务端决定把钥匙(秘钥)给谁
scp /root/.ssh/id_rsa [email protected]指定客户端IP:/root/.ssh/
注意:如果不成功有可能该客户端没有改目录,建立一个/root/.ssh/即可
禁止客户端登录(砸锁)
相当于我把锁砸了,你有钥匙也进不了。我们刚刚对服务器加密上锁的过程产生了一个文件:/root/.ssh/authorized_keys,删除该文件,则产生禁止!
如何恢复?
其实我之前说过,公钥就是锁,所以我们把公钥复制到这个文件中即可!
cp /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys
然后重启一下sshd服务
systemctl restart sshd.service
你会发现又可以连接了
sshd安全设定(让哪些用户可以连接)
主要设定在sshd的配置文件中
查看默认配置:man 5 sshd_config(只是文件名,不是绝对路径)
vim /etc/ssh/sshd_config
78 PasswordAuthentication yes/no ##是否允许用户通过登陆系统的密码做sshd的认证
48 PermitRootLogin yes ##是否允许root用户通过sshd服务认证
52 AllowUsers student ##设定用户白名单,白名单设定后,默认不在名单中的用户就不能使用sshd
53 DenyUser student ##设定用户黑名单,黑名单设定后,默认不在名单中的用户可以使用sshd
添加sshd登陆信息
vim /etc/motd ##文件内容就是登陆后显示的信息
用户登录信息审计
w ##查看正在使用当前系统的用户
w -f ##查看使用来源
w -i ##显示IP
查看使用过并退出的用户信息:last
记录在/var/log/wtmp里
查看试图登陆但没成功的用户:lastb
记录在 /var/log/btmp里
主机名设置(方便区分)
hostnamectl set-hostname 新主机名
设置完成后重启一下终端就可以