专栏首页Linux运维学习之路ssh服务、密钥登陆配置

ssh服务、密钥登陆配置

环境内核信息:

[root@zabbix-01 ~]# uname -a
Linux lodboyedu-01 2.6.32-696.el6.x86_64 #1 SMP Tue Mar 21 19:29:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

ssh服务介绍

SSH是Secure Shell Protocol的简写

SSH先对联机数据包通过加密技术进行加密处理,加密后在进行数据传输。确保了传递的数据安全

SSH服务主要提供两个服务功能

 一是提供类似telnet远程联机服务器的服务,即SSH服务;

另一个是类似FTP服务的sftp-server,借助SSH协议来传输数据的,提供更安全的SFTP服务(vsftp,proftp)。

ssh服务的所在软件包:openssh-clients、openssh-server

[root@nfs01 ~]# rpm -ql openssh-clients
/etc/ssh/ssh_config      --- ssh服务客户端配置文件
/usr/bin/.ssh.hmac             
/usr/bin/scp             --- ssh服务远程传输复制命令scp
/usr/bin/sftp            --- ssh服务远程传输文件服务
/usr/bin/slogin          --- ssh服务远程登陆命令
/usr/bin/ssh             --- ssh服务远程登陆命令
/usr/bin/ssh-add
/usr/bin/ssh-agent
/usr/bin/ssh-copy-id     --- ssh服务远程分发公钥命令
/usr/bin/ssh-keyscan
[root@nfs01 ~]# rpm -ql openssh-server
/etc/rc.d/init.d/sshd     #ssh服务启动脚本文件
/etc/ssh/sshd_config      #ssh服务配置文件
/etc/sysconfig/sshd       #ssh服务创建密钥有关
/usr/sbin/.sshd.hmac      #ssh服务加密算法有关文件
/usr/sbin/sshd            #ssh服务进程启动命令

ssh远程登陆方式

[e:\~]$ ssh 10.0.0.31      #端口号不能改才能这样

Connecting to 10.0.0.31:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

Last login: Tue Oct 17 23:22:43 2017 from 10.0.0.253
[root@nfs01 ~]#

ssh服务认证过程与基于密钥认证过程

ssh服务认证连接过程

ssh服务基于密钥认证过程

ssh服务优化

ssh配置文件默认登陆参数修改

修改SSH服务的运行参数,是通过修改配置文件/etc/ssh/sshd_ config实现的。

一般来说SSH服务使用默认的配置已经能够很好的工作了,如果对安全要求不高,仅仅提供 SSH服务的情况,可以不需要修改任何配置。

SSH配置文件相关参数说明

命令参教

参数说明

Port

指定sshd进程监听的端口号,默认为22。可以使用多条指令监听多个端口。默认将在本机的所有网络接口上监听,但是可以通过 ListenAddress指定只在某个特定的接口上监听。

PermitEmptyPasswords

是否允许密码为空的用户远程登录。默认为"no"。

PermitRootLogin

是否允许root登录。可用值如下:" yes"(默认)表示允许。"no”表示禁止。 "without-password"表示禁止使用密码认证登录。" forced- commands-only"表示只有在指定了command选项的情况下才允许使用公钥认证登录。同时其它认证方法全部被禁止。这个值常用于做远程备份之类的事情。 1. 多开一个窗口 2. 临时多部署一条连接方式 3. 给普通用户 sudo权限

UseDNS

指定sshd是否应该对远程主机名进行反向解析,以检查此主机名是否与其IP地址真实对应。默认值为" yes"。

ListenAddress

指定监听并提供服务相应的网卡地址信息

更改ssh默认登陆配置执行方法为:

[root@centos ~]#cp /etc/ssh/sshd_config /etc/ssh/sshd_config.ori 
##—>更改配置前进行备份,是系统管理员的一个良好的习惯。 
[root@centos ~]#vi /etc/ssh/sshd_config     #—>编辑 sshd_config 
Port 4188                #—>ssh连接默认端口为22,这淮都知道。因此,为提高安全级別,建议改掉它。 
PermitRootLogin no       #—>root超级用户黑客都知道,建议禁止它远程登陆能力。 
PermitEmptyPasswords no  #—>禁止空密码登陆 
UseDNS no                #—>不使用DNS      
GSSA PI Authentication no  #->认证的 

重点配置参数说明

#Port 22                  --- 表示修改ssh服务默认端口号
#AddressFamily any        --- 指定监听ipv4地址,或是ipv6地址,或者所有都监听
#ListenAddress 0.0.0.0    --- 监听地址只能监听本地网卡上配置的地址,监听的网卡可以对请求做出相应

ssh服务秘钥登录配置

基于口令认证方式

[root@nfs01 ~]# ssh -p4188 10.0.0.41
root@10.0.0.41's password: 
Last login: Wed Oct 18 12:07:34 2017 from 10.0.0.31
[root@backup ~]#

基于密钥认证方式

第一步、创建密钥对

[root@backup ~]# ssh-keygen -t rsa    ### -t 指定以什么加密方式这里使用的rsa方式
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
8b:bd:a3:10:5d:88:e4:ea:0f:3a:d1:13:7a:31:f1:45 root@backup
The key's randomart image is:
+--[ RSA 2048]----+
|    ..E          |
|  .o ...         |
|   oo.. .        |
|  +... .         |
| o.+. . S        |
|o.+  . o .       |
| oo.. . o        |
|.. o .  ..       |
|..  . ....       |
+-----------------+
[root@backup ~]# ll ~/.ssh/
total 12
-rw------- 1 root root 1671 Oct 18 11:06 id_rsa
-rw-r--r-- 1 root root  393 Oct 18 11:06 id_rsa.pub
-rw-r--r-- 1 root root 1178 Oct 11 15:50 known_hosts

第二步、将公钥分发给存储服务器

[root@backup ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub 10.0.0.31   ##-i指定公钥路径
root@10.0.0.31's password: 
Now try logging into the machine, with "ssh '10.0.0.31'", and check in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

第三步、登陆测试

[root@backup ssh]# ssh 10.0.0.31
Last login: Wed Oct 18 00:58:52 2017 from 172.16.1.41
[root@nfs01 ~]#

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Linux远程ssh执行命令expect使用及几种方法

    在客户端使用ssh-keygen生成密钥对,然后把公钥复制到服务端(authorized_keys)。

    863987322
  • 自动化运维工具对比与选择

    863987322
  • iptables网络安全服务详细使用

    iptables防火墙概念说明 开源的基于数据包过滤的网络安全策略控制工具。 centos6.9  --- 默认防火墙工具软件iptables centos7 ...

    863987322
  • Core Linux折腾(二)

    目录 Core Linux折腾(一)[一] Core Linux折腾(一)[二] Core Linux折腾(二) Core Linux折腾(三) Co...

    Pulsar-V
  • 禁止管理员root用户通过ssh远程登录服务器

    1.尝试连接 ssh user@ip 比如ssh yao@192.168.177.140

    宸寰客
  • git使用双秘钥

    由于新项目需要两个github账号,然后一个git秘钥只能绑定一个号,所以特地写出教程,教你如何配置双秘钥

    huanhao
  • ssh 双机互信:免密码登录设置步骤及常见问题

    在 linux 系统管理中,设置免密码登录,进行机器的批量管理是最常用的一个方法。比如针对几十甚至上百台线上机器,通常我们会设置一台“发布机”作为中央控制机对其...

    用户1177713
  • 大家好,给大家介绍一下,这是linux运维安全之SSH安全

    SSH一般用途 提供shell,解决telnet不安全的传输 1、修改默认ssh默认端口 vi /etc/ssh/sshd_config 修改之后重启 >sys...

    用户1467662
  • 推荐使用 SSH 方式连接 Git 服务

    Git 已经成为我们开发最流行的版本控制工具了,Git 支持多种传输协议,其中最常用的就是https 和 ssh,平常我们用 https 比较多,这种方式 pu...

    码农小胖哥
  • Linux系统下的ssh使用(依据个人经验总结)

    对于linux运维工作者而言,使用ssh远程远程服务器是再熟悉不过的了!对于ssh的一些严格设置也关系到服务器的安全维护,今天在此,就本人工作中使用ssh的经验...

    洗尽了浮华

扫码关注云+社区

领取腾讯云代金券