linux学习之旅(九)

时间:2022-06-07 06:54:19

openssh-server

功能:让远程主机可以通过网络访问sshd服务,开始一个安全shell

问题的引入:

有时候可能会发现,莫名奇妙桌面上多了一些自己没有碰过的东西,比如新建立的文件,有些配置的修改,可是自己能肯定完全没有操作过啊。此时,就要考虑可能是被远程主机知道了你的密码,连接上了你的服务器。
可以用(七)中所讲的知识,w ,ps去看进程信息,last,lastb分别去看有没有用户成功登陆或未成功登陆你的主机,关于ip的含义之前已经简单说明了。

linux学习之旅(九)
*//上图表明,自己正在被ip为172.25.254.177远程登陆,ip为172.25.254.77未登陆成功。
linux学习之旅(九)
*//用(八)所讲的控制服务也可以查看到此时被172.25.254.107连接


那么我们改如何让远程访问sshd服务呢?

1.客户端连接方式

ssh 远程主机用户@远程主机ip
两个服务器要连接,网段一定一样,即前三位ip相同

[root@foundation77 ~]# ssh root@172.25.254.177
The authenticity of host '172.25.254.177 (172.25.254.177)' can't be established.
ECDSA key fingerprint is eb:24:0e:07:96:26:b1:04:c2:37:0c:78:2d:bc:b0:08.
Are you sure you want to continue connecting (yes/no)? yes ##连接陌生主机时需要建立认证关系
Warning: Permanently added '172.25.254.177' (ECDSA) to the list of known hosts.

root@172.25.254.177's password: ##远程用户密码
Last login: Sat Jul 22 21:39:01 2017
[root@localhost ~]# ##登陆成功

"ctrl + D 退出连接"

ssh的用法:

ssh      远程主机用户@远程主机ip     -X       // -X 参数 : 调用远程主机图形工具 ssh 
ssh 远程主机用户@远程主机ip command //直接在远程主机运行某条命令
  • 直接远程在 172.25.254.177完成了文件的创建
    linux学习之旅(九)
    *注: 即使这个操作不进入他人用户,但是在对方还是有你登陆过的记录

2.sshkey加密 — 设置允许的用户能进入

1.生成公钥私钥: ssh-keygen

[root@foundation77 ~]# ssh-keygen ##生成公钥私钥工具
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): ##[enter]
//加密字符保存文件(建议用默认),如果要加密码,最少5位
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): ##[enter] ##密钥密码,必须>4个字符
Enter same passphrase again: ##[enter] ##确认密码
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
5e:8a:3d:75:0f:0d:fb:bb:c2:4a:9a:7c:b6:6b:84:d8 root@foundation77.ilt.example.com
The key's randomart image is:
+--[ RSA 2048]----+
| |
| |
| . |
| + |
| oS.o + . |
| .+E+.. + |
| . =... o |
| . =+ o . |
| ++++ .o. |
+-----------------+
[root@foundation77 ~]# ls /root/.ssh/
id_rsa id_rsa.pub
//id_rsa ##私钥,就是钥匙
//id_rsa.pub ##公钥,就是锁

2.添加key认证方式

[root@localhost ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@localhost
ssh-copy-id ##添加key认证方式的工具
-i ##指定加密key文件
/root/.ssh/id_rsa.pub ##加密key
root ##加密用户为root
localhost ##被加密主机ip,**当然也可以给别人的主机上锁,便于服务器管理

linux学习之旅(九)
*//按步骤操作,出现了已添加上的提示,下图就是添加后生成了authorized_keys
linux学习之旅(九)
3.分发钥匙给client主机,远程发送,或复制 — scp命令(有单独讲解)

[root@localhost ~]# scp /root/.ssh/id_rsa root@172.25.254.107:/root/.ssh/

用scp命令时,一定要 systemctl start sshd,不然白操作!!!
4.测试

[root@localhost~]# ssh root@172.25.254.177 ##通过id_rsa直接连接不需要输入用户密码
Last login: Sat Jul 22 23:10:43 2017 ##连接成功,没有密码

此时,如果主机将 /root/.ssh/authorized_keys删掉,那么发的钥匙就没用了,就又要密码了。

  • *tips:
  • ssd & sshd 区别: ssh 相当于客户端(client); sshd 相当于服务端(server)

3.提升openssh的安全级别

openssh-server配置文件: /etc/ssh/sshd_config

[root@localhost~]# vim /etc/ssh/sshd_config
...
48 PermitRootLogin yes|no ##是否允许超级用户登陆
49 AllowUsers student westos ##用户白名单,只有在名单中出现的用户可以使用sshd建立shell,即,只允许谁
50 DenyUsers westos ##用户黑名单
78 PasswordAuthentication yes|no ##是否开启用户密码认证,yes为支持no为关闭

应用举例:

/etc/ssh/sshd_configPasswordAuthentication yes连接关闭
查看man 5 sshd_config ,加Allowgroups root 变成root的组都可以进;
然后,usermod -G root student
student 就可以进入了 或者加 allowusers student 直接给用户student开权限 每次改变记得重新配置。

*对服务进行控制的简单方法:

两个文件: /etc/hosts.deny ; /etc/hosts.allow
在文件内添加帮助可以在 man 5 hosts.deny 与 man 5 hosts.allow 中查到

vim /etc/hosts.deny  ----------->  加sshd: ALL      //对所有连接拒绝
vim /etc/hosts.allow -----------> 加sshd:<ip> //单独对xxx开

两个一起改,可以改对单个用户认证开放,记得重置

  • hosts.allow 优先级比 hosts.deny高
  • 所以allow里面写的会覆盖deny相同的 ,即两个里面都写ALL是没用的
  • 即改即生效
    linux学习之旅(九)

额外的,用户还可以自己修改登陆成功的提示语
文件 /etc/motd : 作用:显示登陆字符

vim 打开文件 /etc/motd
里面写什么登陆成功就会提示什么。

  • 一个最简单的示例:
    linux学习之旅(九)