一、查看安全相关指令
a.查看现有的用户以及可登录的用户
- 查看所有用户:cat /etc/passwd
- 查看可以登录系统的用户:cat /etc/passwd | grep -v /sbin/nologin | cut -d : -f 1
b.查看用户登录历史信息
-
last [username] 查看登录成功记录信息(不加用户名查看当前用户)
-
lastb [username ] 查看登录失败记录信息 (root用户可使用,不加用户名查所有)
结合条件筛选更有趣哟。例如:lastb 用户名 | grep 指定IP #可查询指定ip登录失败的信息
c.查看是否有可疑 IP 成功登录机器:less /var/log/secure|grep ‘Accepted’
d.用户最近使用过的指令:history
二、修改SSH端口
特别说明:本人没有开启防火墙,没有开启SELinux.(使用云服务器的安全组控制端口权限)
查看SELinux状态命令:sestatus #disabled 关闭
查看防火墙状态命令:systemctl status firewalld #Active: inactive (dead)灰色表示停止 查看更多
a.修改ssh端口
vim /etc/ssh/sshd_config 找到Port 22 这行后面添加 Port new_port (按i进入编写模式,esc -> : [冒号]–>wq–>回车)
b.重启ssh服务:systemctl restart sshd.service
c.登录云服务器,找到安全组。关闭22端口;新增规则,加上你的新端口
d.开始愉快的使用:ssh -p new_port username@yourIp
三、通过SSH免密登录
a.创建ssh
-b(指定密钥长度。对于RSA密钥,最小要求768位,默认是2048位。)
-C (提供一个新注释)
-t(指定要创建的密钥类型。可以使用:"rsa1"(SSH-1) "rsa"(SSH-2) "dsa"(SSH-2))
-f (指定密钥文件名)
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
b.将公钥存放到服务器.ssh下面,命名为authorized_keys (注意权限问题)
-
1.自动创建(推荐)
ssh-copy-id -i ~/.ssh/id_rsa.pub user_name@your_ip (并输入密码)
-
2.手动创建
在用户目录下面创建.ssh目录(文件夹的访问权限必须是是700权限) 在.ssh文件夹里面创建authorized_keys文件(文件必须是600权限) 分别修改.ssh 和 authorized.keys 的访问权限 chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys 编辑authorized.keys文件,填入生成好的公钥
c.测试连接,能进入就代表成功
ssh -p 22 user_name@your_ip #端口为22时:ssh user_name@your_ip 即可
四、ssh配置config快速登录服务器
用于已经可以实现ssh免密登录,配置config只是简化操作;
例如更改了端口之后:配置前:ssh -p 22 user_name@your_ip 配置后:ssh 别名
1.config文件放置目录:用户目录下面的.ssh目录里面
以shell命令为例(windows可用"windwos PowerShell"软件、"Git Bash Here"):~/.ssh
window也可以直接打开:C:\Users\用户名\.ssh
2.语法介绍
#重要提示:config文件里面不能出现备注,请删除“#”以及#后面的内容
Host alias1
HostName 49.228.211.23 #【必填】服务器IP地址
Port 22 #【必填】ssh端口,服务器默认为22
User root #【必填】服务器用户名
IdentityFile ~/.ssh/id_rsa #【非必填】指定ssh私钥文件地址,默认为~/.ssh/id_rsa
Host alias2 #配置多个
HostName 47.98.211.233
Port 122
User username
.....
##可配置多个,此处以两个为例
3.食用方法
ssh alias1
4.特别注意:config文件没有后缀
结尾:额外知识
a.操作SSH/SSHD服务(查看/启动/重启/自启)
- 查看状态:systemctl status sshd.service
- 启动服务:systemctl start sshd.service
- 重启服务:systemctl restart sshd.service
- 开机自启:systemctl enable sshd.service
b.SELinux相关
- 查看SELinux的ssh端口: semanage port -l | grep ssh
- ELinux新增ssh端口: semanage port -a -t ssh_port_t -p tcp [new_port]
- 查看SELinux的所有端口: semanage port -l (可结合grep过滤)