一、介绍

  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. linux上uwsgi+nginx+django发布项目

    在发布项目前首先将部署环境进行搭建,尤其是依赖包一定需要提前安装. 一.虚拟环境的搭建 1.建议在linux下新建一个虚拟环境,这样有独立干净的环境. mkvirtualenv -p python3 ...

  2. wps填充1到1000

    A1单元格1 ,选中,填充,序列,确定

  3. 【ZZ】神与学霸的区别

    神与学霸的共同点是积点都令人发指得高,这也是他们的主要特征,或者说是基本特征.但是他们的区别也是很大的. 平时打电话给普通人:喂在干嘛? 玩 玩什么? 逛街/唱k/打游戏/看电影/睡觉/... 打电话 ...

  4. Linux rz的使用

    RZ是Linux提供的上传的命令,基于XMODEM/YMODEM/ZMODEM协议. 让我们来测试一下参数吧: 先准备一个文件,就叫test.txt吧,内容如下: one line rz -+  如果 ...

  5. 【NOIP2017练习】鏖战字符串(斜率优化DP)

    题意: 在决胜局中,Abwad决定和nbc鏖战字符串,比的是谁能更快地将一个“量子态的字符串”删除.“量子态的字符串”的每个字符都有一个删除难度dif[i].“量子态的字符串”非常顽固,只能先分割成若 ...

  6. poj_2524_Ubiquitous Religions_201407211506

    Ubiquitous Religions Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 23390   Accepted:  ...

  7. POJ 1064_Cable master

    题意: 给定一系列长度的电缆,将他们切成K条相等长度的电缆,问每条最长有多长? 分析: 对长度进行二分,判断能否满足K条. 二分搜索: 在求解最大化或最小化问题中,能够比较简单的判断条件是否满足,那么 ...

  8. 洛谷 U41571 Agent2

    U41571 Agent2 题目背景 炎炎夏日还没有过去,Agent们没有一个想出去外面搞事情的.每当ENLIGHTENED总部组织活动时,人人都说有空,结果到了活动日,却一个接着一个咕咕咕了.只有不 ...

  9. Java 代理模式和装饰者模式的区别

    装饰模式:以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案:代理模式:给一个对象提供一个代理对象,并有代理对象来控制对原有对象的引用: 装饰模式应该为所装饰的对象增强功能:代理模式对代理的 ...

  10. JFinal Weixin 微信极速 SDK

    原文:https://git.oschina.net/jfinal/jfinal-weixin