sshd简介
sshd=secure shell
可以通过网络在主机中开启shell的服务
这样其他主机就可以通过网络远程访问并控制这台主机
连接方式:
ssh username@ip ##文本模式的链接
ssh -X username@ip ##可以在链接成功后开启图形
注意:
第一次链接陌生主机是要建立认证文件
所以会询问是否建立,需要输入yes
再次链接此台主机时,因为已经生成~/.ssh/know_hosts文件所以不需要
当有些时候不希望别人连接到自己的电脑时,使用下面文件
/etc/hosts.deny(allow) #allow比deny优先级高(ALL EXCEPT ****)
远程复制:
scp file root@ip:dir ##上传
scp root@ip:file dir ##下载
注意:不论是上传还是下载,实际上依赖的都是服务端的sshd服务
sshd的key认证
很多时候使用密码远程连接不仅不方便,而且也会给电脑带来极大的安全隐患,在我们的Linux中,还有另外一种认证方式,那就是sshd的key认证,就像钥匙和锁一样,锁挂在那里,谁有钥匙谁能开。
1、生成钥匙和锁
ssh-keygen
上面显示的自定义的存放地址和密码可以直接跳过,就会自动生成默认的钥匙和锁
2、用新的锁加密
ssh-copy-id -i 加密文件 用户@主机ip
例:ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.25.254.100 #为此ip下的root用户上锁
3、分发钥匙
scp /root/.ssh/id_rsa root@172.25.254.200:/root/.ssh/ #将认证的钥匙发送给200ip主机下的root用户放在/root/.ssh/文件夹
4、测试
在客户主机中(172.25.254.200)
ssh root@172.25.254.100 ##链接时发现直接登陆不需要root登陆系统的密码认证
sshd的安全设定
/etc/ssh/sshd_config
78行 PasswordAuthentication yes|no #是否允许用户通过登陆系统的密码做sshd的认证
48行 PermitRootLogin yes|no #是否允许root用户通过sshd服务的认证
52行 AllowUsers 用户1 用户2 … #设定用户白名单,白名单出现默认不在名单中的用户不能使用sshd
53行 DenyUsers 用户1 用户2 … #设定用户黑名单,黑名单出现默认不在名单中的用户可以使用sshd
添加sshd登陆登陆信息
vim /etc/motd ##文件内容就是登陆后显示的信息
我们先在motd文件中写下内容,然后重启sshd服务
再用其他主机连接
可以看到链接成功后出现了我们刚才写的Hello World
用户的登陆审计
查看都有哪台主机正在登陆你的主机,哪台曾经登陆
1、w ##查看正在使用当前系统的用户
-f ##查看使用来源
-i ##显示ip
登陆信息储存在/run/utmp
2、last ##查看使用过并退出的用户信息(在用户成功登入时记录,用户退出时不记录)也就是说如果我登录了你的主机并且清空了你的/var/log/wtmp,然后退出,你在wtmp里是看不到我的登入记录的
登陆信息储存在/var/log/wtmp
3、lastb ##试图登陆但没成功的用户
信息储存在/var/log/btmp