一、介绍

  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 目录下会自动生成相应的用户文件夹

 [root@cleven_server ~]# adduser new_user
[root@cleven_server ~]# passwd new_user
更改用户 new_user 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[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

    在下面添加:

 ## Allow root to run any commands anywhere
root ALL=(ALL) ALL
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登录,生成密钥对

 [new_user@cleven_server /]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/new_user/.ssh/id_rsa):
Created directory '/home/new_user/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/new_user/.ssh/id_rsa.
Your public key has been saved in /home/new_user/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:0KrowSHBBZ16tHjaQhr+2bcbEyqonlFvkjHxjrMfKCI new_user@cleven_server
The key's randomart image is:
+---[RSA ]----+
| .o.. |
|. .+ . |
|..+.. . . |
|.= +o o |
|=.*+ ...S |
|.*o+O.. . |
|E+*B+* o |
|+.++*...o |
|oo.....oo |
+----[SHA256]-----+
[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为公钥)

 [new_user@cleven_server /]$ cd /home/new_user/.ssh
[new_user@cleven_server .ssh]$ ll
总用量
-rw------- new_user new_user 5月 : id_rsa
-rw-r--r-- new_user new_user 5月 : id_rsa.pub
[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

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

  (2)查看安装

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

 [new_user@cleven_server .ssh]$ ll
总用量
-rw------- new_user new_user 5月 : authorized_keys
-rw------- new_user new_user 5月 : id_rsa
-rw-r--r-- new_user new_user 5月 : id_rsa.pub
[new_user@cleven_server .ssh]$

 

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

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

Cleven:~ Cleven$ scp new_user@.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

 

ECS服务器配置密钥登录及常用日志的更多相关文章

  1. CentOS6.9下ssh密钥登录配置步骤(免密码登录)和ssh-keygen 命令常用参数

    密钥登录步骤(免密码登录)ssh登录提供两种认证方式:口令(密码)认证方式和密钥认证方式.其中口令(密码)认证方式是我们最常用的一种,出于安全方面的考虑,介绍密钥认证方式登录到linux/unix的方 ...

  2. Debian9.5下ssh密钥登录配置步骤(免密码登录)和ssh-keygen 命令常用参数

    密钥登录步骤(免密码登录)ssh登录提供两种认证方式:口令(密码)认证方式和密钥认证方式.其中口令(密码)认证方式是我们最常用的一种,出于安全方面的考虑,介绍密钥认证方式登录到linux/unix的方 ...

  3. 增强VPS SSH账号安全:改端口,禁用Root,密钥登录,Denyhosts防暴力攻击

    VPS SSH账号是我们日常管理VPS的主要登入方式,尤其是Root账号,对Linux系统安全至关重要.以前好多站长喜欢用Putty中文版,这实际是别人修改官方Putty汉化而来,这些软件被植入了后门 ...

  4. SSH密钥登录让Linux VPS/服务器更安全

    查看 /var/log 登录日志文件,突然发现服务器被人扫描端口在进行暴力攻击 平常登录服务器,都是使用用户密码登录,看来这样的做法并不安全,不得不关闭密码登录了. 总结了一个putty使用密钥自动登 ...

  5. linux 如何使用密钥登录 (CentOs)

    说明:一般的密码方式登录容易被密码暴力破解.所以一般我们会将 SSH 的端口设置为默认22以外的端口,或者禁用root账户登录.其实可以通过密钥登录这种方式来更好地保证安全. 密钥形式登录的原理是:利 ...

  6. xshell 用密钥登录服务器

    来源:http://coolnull.com/3510.html 说明:ssh登录提供两种认证方式:口令(密码)认证方式和密钥认证方式.其中口令(密码)认证方式是我们最常用的一种,这里介绍密钥认证方式 ...

  7. CentOS -- 新建用户并使能密钥登录

    目录 1. 新建用户 2. 为新用户授权 2.1. 方法一:把新用户添加到wheel用户组中 2.2. 方法二:把新用户添加到sudoers列表中 3. 新用户使能 SSH 密钥登录 4. 其它 4. ...

  8. Centos7.5使用SSH密钥登录

    12.1.查看操作系统版本 # cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) 12.2.在服务器端创建密钥 # ssh-ke ...

  9. 无密钥登录的自动脚本实现(ssh-copy-id、expect免交互输入脚本)

    感谢朋友支持本博客,欢迎共同探讨交流,由于能力和时间有限,错误之处在所难免,欢迎指正! 如有转载,请保留源作者博客信息. Better Me的博客:blog.csdn.net/tantexian 如需 ...

随机推荐

  1. vscode 解决符号无法识别的问题

    一开始浏览代码出现了下面这个问题, __attribute__ 标记为红色,符号无法识别,下面还出现了很多提示需要加 ), } 等符号,虽然编译没问题,但是看着红色标记和一堆提示真是要逼死强迫症. 既 ...

  2. 56. spring boot中使用@Async实现异步调用【从零开始学Spring Boot】

    什么是"异步调用"? "异步调用"对应的是"同步调用",同步调用指程序按照定义顺序依次执行,每一行程序都必须等待上一行程序执行完成之后才能执 ...

  3. NYOJ-476谁是英雄,分解质因子求约数个数!

    谁是英雄 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 十个数学家(编号0-9)乘气球飞行在太平洋上空.当横越赤道时,他们决定庆祝一下这一壮举.于是他们开了一瓶香槟.不 ...

  4. acm 一年总结

    首先是大一的一段简短历史,和其他人不太一样,刚上大一的我等于是刚刚接触电脑,开始下载程序啦,安装系统了,电脑出个小问题啦自己都不会解决,然后大一还开了一门叫做c语言的课程,顿时傻逼了,当时也不用功,大 ...

  5. es6异步编程 Promise 讲解 --------各个优点缺点总结

    //引入模块 let fs=require('fs'); //异步读文件方法,但是同步执行 function read(url) { //new Promise 需要传入一个executor 执行器 ...

  6. Max Num

    Problem Description There are some students in a class, Can you help teacher find the highest studen ...

  7. Surprising Strings

    Surprising Strings Time Limit: 1000MS Memory Limit: 65536K Total Submissions: Accepted: Description ...

  8. 洛谷——P1458 顺序的分数 Ordered Fractions

    P1458 顺序的分数 Ordered Fractions 题目描述 输入一个自然数N,对于一个最简分数a/b(分子和分母互质的分数),满足1<=b<=N,0<=a/b<=1, ...

  9. MongoDB小结26 - 地理空间索引

    现在有一种查询变得越来越流行(尤其是移动设备):找到离当前位置最近的N个场所. MongoDB专为平面坐标查询做了专门的索引,称为地理空间索引. 同样需要用ensureIndex创建,不过,参数是两个 ...

  10. Vue.js组件的通信之父组件向子父组件的通信

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...