一、介绍

  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. 第七章习题G题

    题意 给出如图案例,要你从某一点开始走,一直走到极限(即无法再进行扩展),这时你走过的点会连成一个数,不同的走法当然会有不同的数,要求是输出最大的数(注意每个方块走过一次就不能再走) 思路 •1.枚举 ...

  2. jsp+servlet+mysql增删改查

    用的IntelliJ IDEA开发的,jdk1.8 1 首先是项目结构,如下图所示 2看各层的代码 首先是web.xml <?xml version="1.0" encodi ...

  3. Java反射机制(Reflect)解析-----https://www.cnblogs.com/fzz9/p/7738381.html

    Java反射机制(Reflect)解析-----https://www.cnblogs.com/fzz9/p/7738381.html

  4. 贪心算法求解活动安排<算法分析>

    一.实验内容及要求 1.要求按贪心算法原理求解问题: 2.要求手工输入s[10]及f[10],其中注意自己判断s[i]<f[i]: 3.要求显示所有活动及最优活动安排的i事件列表.二.实验步骤  ...

  5. 【周期性执行事件】MySQL事件(Event)&任务调度

    1.事件简介 事件(event)是MySQL在相应的时刻调用的过程式数据库对象.一个事件可调用一次,也可周期性的启动,它由一个特定的线程来管理的,也就是所谓的“事件调度器”. 事件和触发器类似,都是在 ...

  6. 交互设计:隐藏或显示大段文本的UI组件有哪些?

    应用场景: 在手机上要给列表中的每一项添加一个大段的介绍,应该用什么UI组件 A: 这里可以用,模态对话框,弹出提示,工具提示这类组件.模态对话框的好处,就是用关闭的按钮,用户操作方便:而弹出提示和工 ...

  7. [bzoj1059][ZJOI2007]矩阵游戏_二分图最大匹配

    矩阵游戏 bzoj-1059 ZJOI-2007 题目大意:给定一个n*n的棋盘,上面有一些格子被染黑,剩下都是白色.你每次可以交换两列或者两行,问你能否通过一系列操作使得棋盘的主对角线上的格子全是黑 ...

  8. 图片在 canvas 中的 选中/平移/缩放/旋转,包含了所有canvas的2D变化,让你认识到数学的重要性

    1.介绍 canvas 已经出来好久了,相信大家多少都有接触. 如果你是前端页面开发/移动开发,那么你肯定会有做过图片上传处理,图片优化,以及图片合成,这些都是可以用 canvas 实现的. 如果你是 ...

  9. StringBuffer疑问

    为何结果为AB.B? public static void main(String[] args) { StringBuffer a=new StringBuffer("A"); ...

  10. Cocos2D实现上下滚动式状态窗体

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 假设认为写的不好请多提意见,假设认为不错请多多支持点赞.谢谢! hopy ;) 有时候要显示的内容太多,我们无法在iOS设备的小屏幕上显示出来 ...