一、介绍

  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. Texture 纹理贴图

    基础贴图Shader:只有纹理 1. 在属性中声明纹理贴图: _MainTex ("Texture", 2D) = "white" {} 2. 在Pass中声明 ...

  2. BNUOJ 1589 Closest Common Ancestors

    Closest Common Ancestors Time Limit: 2000ms Memory Limit: 10000KB This problem will be judged on PKU ...

  3. 63.JPA/Hibernate/Spring Data概念【从零开始学Spring Boot】

    [从零开始学习Spirng Boot-常见异常汇总] 事情的起源,无意当中在一个群里看到这么一句描述:"有人么?默默的问一句,现在开发用mybatis还是hibernate还是jpa&quo ...

  4. HDU 3537 Mock Turtles型翻硬币游戏

    题目大意: 每次可以翻1个或者2个或者3个硬币,但要保证最右边的那个硬币是正面的,直到不能操作为输,这题目还有说因为主人公感情混乱可能描述不清会有重复的硬币说出,所以要去重 这是一个Mock Turt ...

  5. Uva -1515 Pool construction(最小割)

    输入一个字符矩阵,'.'代表洞,'#'代表草地.可以把草改成洞花费为d,或者把洞改成草花费为f,最后还要在草和洞之间修围栏花费为b. 首先把最外一圈的洞变成草,并累加花费. 增加一个源点和一个汇点,源 ...

  6. hdu - 1429 胜利大逃亡(续) (bfs状态压缩)

    http://acm.hdu.edu.cn/showproblem.php?pid=1429 终于开始能够做状态压缩的题了,虽然这只是状态压缩里面一道很简单的题. 状态压缩就是用二进制的思想来表示状态 ...

  7. POJ 2240_Arbitrage

    题意: 给定一系列货币汇率,求能否从一种货币,经过一系列转换,最终转化回更高价值的该种货币. 分析: 即为求最长路并判断是否存在"正"权值回路,这里用的bellmanford算法. ...

  8. codevs——1385 挤牛奶

    1385 挤牛奶 USACO  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 青铜 Bronze 题解  查看运行结果     题目描述 Description 三个农民每天清 ...

  9. JSP的表单处理

    以下内容引用自http://wiki.jikexueyuan.com/project/jsp/form-processing.html: 当需要从浏览器向Web服务器传递一些信息并最终将信息返回到后端 ...

  10. JDBC的事务

    以下内容引用自http://wiki.jikexueyuan.com/project/jdbc/transactions.html: 如果JDBC连接是处于自动提交模式下,该模式为默认模式,那么每句S ...