ECS服务器配置密钥登录及常用日志

一、介绍

  1、SSH(22端口)是Secure Shell Protocol的简写,由IETF网络工作小组(Network Working Group)制定;在进行数据传输之前,SSH先对联机数据包通过加密技术进行加密处理,加密后在进行数据传输。确保了传递的数据安全。SSH服务支持安全认证机制,就是密钥登录,这种方式是比较安全的登入方式。本文将实际操作在服务器中创建新用户,同时使用密钥进行登录(免密码)。

  2、客户端使用iterm2 和 FinalShell进行远程连接,服务器系统为CentOS7.4。

  3、记录一些常用日志的查看方式。

二、步骤简介

  1、购买阿里ECS服务器,配置相关安全组,设置root密码等(这些过程省略介绍)。

  2、在服务器上创建其他用户。

  3、使用相应用户登录服务器,并创建密钥对。

  4、在服务器安装公钥,同时,将创建好的私钥,下载到本地保存。

  5、设置服务器ssh的配置文件。

  6、在本地的各类终端中加载私钥,实现远程(免密码)登录。

  Attention:本文主要讲述的是客户端登录到远程服务器上生成密钥对,同时密钥对记录在服务器上,私钥拷贝到本地。当然,也可以客户端在本地生成好密钥对,然后将公钥上传到服务器,自己保留好本地生成的私钥,同样按照上面第4步进行服务器公钥的安装,这里不做特殊说明了。

三、详细步骤说明

  1、用户操作

  (1) 创建用户 ,/home 目录下会自动生成相应的用户文件夹

1 [root@cleven_server ~]# adduser new_user
2 [root@cleven_server ~]# passwd new_user
3 更改用户 new_user 的密码 。
4 新的 密码:
5 重新输入新的 密码:
6 passwd:所有的身份验证令牌已经成功更新。
7 [root@cleven_server ~]#

  (2)查看、删除用户

     <1>  查看系统中有哪些用户:cut -d : -f 1 /etc/passwd

     <2>  查看可以登录系统的用户:cat /etc/passwd | grep -v /sbin/nologin | cut -d : -f 1

     <3>  用户列表文件:/etc/passwd          用户组列表文件:/etc/group

     <4>  查看登录用户:who    查看某一用户:w 用户名 

     <5>  查看用户登录历史记录:last

     <6>  删除用户:userdel -rf name

  (3)为用户分配root权限 (可选)

[root@cleven_server ~]# vim /etc/sudoers

或者,root用户下 直接输入命令 visudo 也即可修改
[root@cleven_server ~]# visudo

    找到该行:

##Allow root to run any commands anywhere
root     ALL=(ALL)     ALL

    在下面添加:

1 ## Allow root to run any commands anywhere
2 root    ALL=(ALL)       ALL
3 new_user ALL=(ALL)       ALL 

  2、生成密钥  (客户端连接服务器,在服务器端生成密钥)

  (1)确认服务器SSH服务

    <1> 检查ssh的安装 :service sshd status  或者 systemctl status sshd

    <2> 如果提示错误,则进行安装:yum install sshd 或者 yum install openssh-server

    <3> 启动:service sshd start 或者 systemctl start sshd

    <4> 重启:service sshd restart 或者 systemctl restart sshd

  (2)切换new_user登录,生成密钥对

 1 [new_user@cleven_server /]$ ssh-keygen -t rsa
 2 Generating public/private rsa key pair.
 3 Enter file in which to save the key (/home/new_user/.ssh/id_rsa):
 4 Created directory '/home/new_user/.ssh'.
 5 Enter passphrase (empty for no passphrase):
 6 Enter same passphrase again:
 7 Your identification has been saved in /home/new_user/.ssh/id_rsa.
 8 Your public key has been saved in /home/new_user/.ssh/id_rsa.pub.
 9 The key fingerprint is:
10 SHA256:0KrowSHBBZ16tHjaQhr+2bcbEyqonlFvkjHxjrMfKCI new_user@cleven_server
11 The key's randomart image is:
12 +---[RSA 2048]----+
13 | .o..            |
14 |. .+   .         |
15 |..+.. . .        |
16 |.= +o  o         |
17 |=.*+ ...S        |
18 |.*o+O.. .        |
19 |E+*B+* o         |
20 |+.++*...o        |
21 |oo.....oo        |
22 +----[SHA256]-----+
23 [new_user@cleven_server /]$

  (3)上文注解

    ssh-keygen -t rsa 命令后一路回车即可:

    <1>  Enter file in which to save the key (/home/new_user/.ssh/id_rsa):
      该命令提示的意思是:让我们定义私钥的存放路径,默认存在的路径是/home/new_user/.ssh/id_rsa (如果是root账号,路径在/root/.ssh/id_rsa)

    <2> Enter passphrase (empty for no passphrase):
      该命令提示的意思是:定义私钥的密码,一般为了免密默认的留空,直接的回车

    <3> Enter same passphrase again:
      该命令提示的意思是:确认密码设置

    经过上面三次回车后,最后在/home/new_user/.ssh/id_rsa下面生成了公钥和私钥


  (4)查看生成的密钥(.pub为公钥)
1 [new_user@cleven_server /]$ cd /home/new_user/.ssh
2 [new_user@cleven_server .ssh]$ ll
3 总用量 8
4 -rw------- 1 new_user new_user 1675 5月  21 13:06 id_rsa
5 -rw-r--r-- 1 new_user new_user  404 5月  21 13:06 id_rsa.pub
6 [new_user@cleven_server .ssh]$

 3、服务器上安装公钥

  注意:使用ssh-keygen -t rsa方式生成相关密匙信息,此时默认的会有对应的:/home/new_user/.ssh/这个目录存在,如果没有的话(使用其他ssh工具生成密钥或者在客户端本地生成密钥的时候)就需要手动创建此目录。

  (1)安装公钥:主要是把 id_rsa.pub 内容复制到 /home/new_user/.ssh/authorized_keys

1 [new_user@cleven_server ~]$ cd /home/new_user/.ssh
2 [new_user@cleven_server .ssh]$ cat id_rsa.pub >> authorized_keys
3 [new_user@cleven_server .ssh]$ chmod 600 authorized_keys  (仅用户自身有读写权限)
4 [new_user@cleven_server .ssh]$ chmod 700 /home/new_user/.ssh  (仅用户自身有读写权限)
5 [new_user@cleven_server .ssh]$

  (2)查看安装

     注意:文件authorized_keys 和 文件夹.ssh 的所有者必须是后面进行SSH远程登录的用户(同名),如果不同,使用命令:chown 用户名  文件名  -R  来更改所有者。

1 [new_user@cleven_server .ssh]$ ll
2 总用量 12
3 -rw------- 1 new_user new_user  404 5月  21 13:29 authorized_keys
4 -rw------- 1 new_user new_user 1675 5月  21 13:06 id_rsa
5 -rw-r--r-- 1 new_user new_user  404 5月  21 13:06 id_rsa.pub
6 [new_user@cleven_server .ssh]$

 

 4、下载私钥到本地,后面将使用此密钥进行登录(可以将id_rsa重命名为 new_user_ECS.pem,方便管理和区分)

  (1)使用scp命令从远程拷贝到本地,以下是在本地终端输入:

Cleven:~ Cleven$ scp new_user@39.xx.xx.xx:/home/new_user/.ssh/id_rsa /User/Cleven/Desktop

  (2)客户端使用FTP软件(FileZilla)

      

  5、在服务器上配置SSH

  (1)编辑配置文件。注意,是sshd_config(服务端配置文件) ,不是ssh_config(客户端配置文件)

[root@cleven_server ~]# vim  /etc/ssh/sshd_config

  (2)配置内容(几个关键处)

#root用户能否通过 SSH 登录,默认为yes
 PermitRootLogin yes 
  
#完成全部设置并以密钥方式登录成功后,可以禁用密码登录。为了安全,建议禁用,但是注意实在密钥登录可行之后禁用
 PasswordAuthentication yes 
 
#默认为yes,是否让 sshd 去检查用户家目录或相关档案的权限数据。如果设置成yes必需保证存放公钥的文件夹的拥有者与登陆用户名是相同的。
#这是为了担心使用者将某些重要档案的权限设错,可能会导致一些问题所致。例如使用者的 ~.ssh/ 权限设错时,某些特殊情况下会不许用户登入(设置成no可登录)
#这通常是必要的,因为新手经常会把自己的目录和文件设成任何人都有写权限。
 StrictModes no
  
#是否允许密钥登录,仅针对SSH第一代通信协议
#在CentOS7.4中被废除了,CentOS7开始预设使用第二代通讯协议
#第二代SSH通讯协议的密钥验证选项是
PubkeyAuthentication
RSAAuthentication yes
#允许公钥认证(密钥登录),自制的公钥数据就放置于用户家目录下的.ssh/authorized_keys 内
#替代了第一代协议中的
RSAAuthentication
PubkeyAuthentication yes
AuthorizedKeysFile
~/.ssh/authorized_keys

  6、本地使用密钥完成登录 ,如出现异常,可使用 ssh -v检查

  (1)iterm2

    <1> 配置描述文件

 

    <2> 本地添加密钥:第4步中下载到本地的密钥

➜  / ssh-add -k /Users/cleven/Desktop/new_user_ECS.pem

    <3> 开启登录

    

  (2)FinalShell 

    

四、查看常用日志及包括用户登录记录

 1、列举一些常见的日志文件:/var/log

  注:可以用file命令查看文件的类型。大多数日志文件是纯文本文件,可以用cat 、head来查看。还有一些是二进制日志文件,需要用专用的命令来查看。

日志 类 型 打开命令 解释
secure

文本                                  

cat、head、tail 等                                               

安全相关,主要是用户认证,如登录 、创建和删除账号 、sudo等
audit/audit.log                                     文本  cat、head、tail 审计日志。跟用户账号相关
messages 文本 cat、head、tail 记录系统和软件的绝大多数消息。如服务启动 、停止 、服务错误等。                         
boot.log 文本 cat、head、tail 系统启动日志。能看到启动流程。
cron 文本 cat、head、tail 计划任务日志。会记录crontab计划任务的创建、执行信息。
dmesg 文本 dmesg、cat等 硬件设备信息(device)。纯文本,也可以用dmesg命令查看。
yum.log 文本 cat、head、tail yum软件的日志。记录yum安装、卸载软件的记录。
lastlog 二进制 lastlog 最后登录的日志。
btmp 二进制 lastb 登录失败的信息(bad)。
wtmp 二进制 last 所有正确登录的用户,往回搜索wtmp来显示自从文件第一次创建以来登录过的用户。                                    
utmp 二进制

w,who ,user                                                

记录当前登录进系统的各个用户。

w命令查询utmp文件并显示当前系统中每个用户和它所运行的进程信息。     

who命令查询utmp文件并报告当前登录的每个用户。

user用单独的一行打印出当前登录的用户,每个显示的用户名对应一个登录会话                                                                                                                                                                                                 

  

 2、剔除在线用户步骤

 (1)查看在线用户 : who   , w

 (2)查看在线用户pid : ps -ef | grep pts/1

 (3)杀掉进程,剔除用户:kill -9 23091

 

原文地址:https://www.cnblogs.com/cleven/p/10899171.html