SSH远程管理OpenSSH使用

SSH(secure shell)是一种安全通道协议,主要用来实现字符界面的远程登录,远程复制等功能。SSH协议对于通信双方的数据传输进行了加密处理,其中包括你用户登录时输入的用户口令。与早期的telnet远程登录、RSH远程执行命令、RCP远程文件复制等应用相比,SSH协议提供了更好的安全性。

OpenSSH是实现SSH协议的开源软件项目,适用于各种UNIX、Linux操作系统。关于Openssh项目的更多内容可以访问其官网http://www.openssh.com。

Openssh是一种典型的C/S构架,是一种很实用的网络安全解决方案。

Openssh登录验证方式:

v 密码验证:以服务器中本地系统用户的登录名称,密码进行验证。这种方式使用最为简单,但从客户机的角度来看,正在连接的服务器有可能被假冒;从服务器的角度来看,当遭遇密码穷举(暴力破解)攻击时防御能力也比较弱。

v 密钥对验证:要求提供相匹配的密钥信息才能通过验证。通常现在客户机中创建一对密钥文件(公钥、私钥),然后将公钥文件放到服务器中的指定位置。远程登录时,系统将使用公钥,私钥进行加密/解密关联验证,大大增强了远程管理的安全性。

当密码验证与密钥对验证都启用时,服务器将优先使用密钥对验证。

在配置文件/etc/ssh/sshd_config中

PasswordAuthentication  密码验证方式启用

PubkeyAuthentication    密钥对验证方式启用

实验环境及要求

准备两台Linux系统服务器与客户机,分别添加普通用户zhangsan与lisi。并给普通zhangsan添加ifconfig的使用权;普通用户lisi上生成密钥对,上传公钥给zhangsan进行openssh的密钥对验证。

服务器配置

[[email protected] ~]# useradd zhangsan  //创建zhangsan用户

[[email protected] ~]# echo "123" | passwd --stdin zhangsan   //设置密码

[[email protected]local ~]# vim /etc/pam.d/su  //修改认证配置

#%PAM-1.0

auth            sufficient      pam_rootok.so

# Uncomment the following line to implicitly trust users in the "wheel" group.

#auth           sufficient      pam_wheel.so trust use_uid

# Uncomment the following line to require a user to be in the "wheel" group.

auth            required        pam_wheel.so use_uid  //启用它,这样普通用户就无法登陆到root用户了

auth            include         system-auth

account         sufficient      pam_succeed_if.so uid = 0 use_uid quiet

account         include         system-auth

password        include         system-auth

session         include         system-auth

session         optional        pam_xauth.so

[[email protected] ~]# vi /etc/ssh/sshd_config   //修改一些sshd服务的文件

Port 22

#AddressFamily any

ListenAddress 192.168.100.100

#ListenAddress ::

PubkeyAuthentication yes   启用秘钥对登录

AuthorizedKeysFile      .ssh/authorized_keys指定公钥数据文件(用来保存客户机上传的公钥文本,以便于客户机本地的私钥文件进行匹配)

[[email protected] ~]# service sshd restart

停止 sshd:                                                [确定]

正在启动 sshd:                                            [确定]

[[email protected] ~]# su - zhangsan  //登陆到普通用户

[[email protected] ~]$ su - root  //转换到管理员用户

密码: //由于之前已经修改了认证配置,所以这里密码即使输入正确也会提示错误

su: 密码不正确

[[email protected] ~]$ exit  //退出普通用户

Logout

[[email protected] ~]# visudo  //给普通用户添加权限

大G到行尾输入下面内容

zhangsan local=/sbin/ifconfig  给zhangsan用户添加ifconfig的使用权限

%wheel ALL=NOPASSWD: ALL  不需要密码

[[email protected] ~]# su - zhangsan

[[email protected] ~]$ ifconfig   //zhangsan用户有权限使用ifconfig命令

eth0      Link encap:Ethernet  HWaddr 00:0C:29:4B:1E:4E

inet addr:192.168.100.100  Bcast:192.168.100.255  Mask:255.255.255.0

inet6 addr: fe80::20c:29ff:fe4b:1e4e/64 Scope:Link

UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

RX packets:1797 errors:0 dropped:0 overruns:0 frame:0

TX packets:1401 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:171259 (167.2 KiB)  TX bytes:192192 (187.6 KiB)

lo        Link encap:Local Loopback

inet addr:127.0.0.1  Mask:255.0.0.0

inet6 addr: ::1/128 Scope:Host

UP LOOPBACK RUNNING  MTU:16436  Metric:1

RX packets:80 errors:0 dropped:0 overruns:0 frame:0

TX packets:80 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:5928 (5.7 KiB)  TX bytes:5928 (5.7 KiB)

客户端配置与验证

1、登录服务端root管理员用户

[[email protected] ~]# ssh [email protected]

[email protected]‘s password:   //输入服务器管理员密码

Last login: Tue Aug 18 11:27:47 2015 from 192.168.100.1

[[email protected] ~]# id zhangsan  //验证:查看服务器上的zhangsan用户

uid=500(zhangsan) gid=500(zhangsan) 组=500(zhangsan)

[[email protected] ~]#

2、登录服务端普通用户zhangsan

[[email protected] ~]# ssh [email protected]

The authenticity of host ‘192.168.100.100 (192.168.100.100)‘ can‘t be established.

RSA key fingerprint is c5:0c:2a:f9:56:53:0a:28:f1:60:c9:a7:37:0c:8c:bc.

Are you sure you want to continue connecting (yes/no)? yes  //输入yes

Warning: Permanently added ‘192.168.100.100‘ (RSA) to the list of known hosts.

[email protected]‘s password:   //输入zhangsan用户密码

[[email protected] ~]$ su - root

密码:

su: 密码不正确

[[email protected] ~]$

[[email protected] ~]# useradd lisi   //添加用户

[[email protected] ~]# echo "123" | passwd --stdin lisi

更改用户 lisi 的密码 。

passwd: 所有的身份验证令牌已经成功更新。

[[email protected] ~]# su - lisi

[[email protected] ~]$ whoami//验证当前用户(命令/sbin/ifconfig eth0 | grep "inet addr"确认当前主机IP)

lisi

[[email protected] ~]$ ssh-keygen -t rsa  //创建密钥对

Generating public/private rsa key pair.

Enter file in which to save the key (/home/lisi/.ssh/id_rsa): //回车

Created directory ‘/home/lisi/.ssh‘.

Enter passphrase (empty for no passphrase): //输入密钥口令(如果不设置口令也就可以不用口令直接登录了)

Enter same passphrase again:  //在输入一遍(确认口令)

Your identification has been saved in /home/lisi/.ssh/id_rsa.

Your public key has been saved in /home/lisi/.ssh/id_rsa.pub.

The key fingerprint is:

fe:fa:38:6d:fa:33:76:8b:f1:74:0a:15:f4:35:1a:2e [email protected]

The key‘s randomart image is:

+--[ RSA 2048]----+

|            .. ..|

|           ...o..|

|           E.o.  |

|            ..   |

|        S   .    |

|       .   .     |

|        ..o . .  |

|        .o**.o   |

|        +O=++.   |

+-----------------+

[[email protected] ~]$ ls -lh ~/.ssh/   //查看密钥文件

总用量 8.0K

-rw-------. 1 lisi lisi 1.8K 8月  18 10:27 id_rsa

-rw-r--r--. 1 lisi lisi  391 8月  18 10:27 id_rsa.pub

[[email protected] ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]//上传公钥到服务器上

[email protected]‘s password:   //输入口令

Now try logging into the machine, with "ssh ‘[email protected]‘", and check in:

.ssh/authorized_keys

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

[[email protected] ~]$ ssh [email protected]  //远程登陆服务器

Enter passphrase for key ‘/home/lisi/.ssh/id_rsa‘:  //输入密钥口令

Last login: Tue Aug 18 11:55:17 2015 from 192.168.100.200

[[email protected] ~]$ tail -l /home/zhangsan/.ssh/authorized_keys //查看密钥文件

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6zgczGUPFwmlq4U/abvVjr3lNyAheLUWcrWY9f/IU5BhjimfP+yJa3eDW/6fx2b1ApbA0E5M2oDUFxer5YW9dNJgYBK9k1E2SU7tJ8GkF+7Hdb4hPYFnE4B3/oEkNIA1Cp76eOH6969zNo1Bn4zDvZpISVvoS3GCKvxVwH9Twqway8RneUBcjnj5FlJ06Jhdo+mbx8FtrEWKF3quCvx3ai0QhlCrfdyLEI//4f8tWk6DlsryUa7Ovjxlp5Lja4/Hukgny9f72ASsM3/9VbyCFQdx1D/ff5MhCbjHMroMvg+iPwCiQiafj7Sn9EAH+NhN6bxq0LaT4Tvs6Q9D3Og9Pw== [email protected]   //这里说明了是哪个客户端的用户上传公钥(客户端lisi用户)

[[email protected] ~]$ ifconfig  //服务端zhangsan用户的权限测试

eth0      Link encap:Ethernet  HWaddr 00:0C:29:4B:1E:4E

inet addr:192.168.100.100  Bcast:192.168.100.255  Mask:255.255.255.0

inet6 addr: fe80::20c:29ff:fe4b:1e4e/64 Scope:Link

UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

RX packets:2827 errors:0 dropped:0 overruns:0 frame:0

TX packets:2137 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:278119 (271.6 KiB)  TX bytes:290533 (283.7 KiB)

[[email protected] ~]$ su - root

密码:

su: 密码不正确

时间: 2024-12-17 05:17:48

SSH远程管理OpenSSH使用的相关文章

SSH远程管理、参数讲解、xshell使用、scp,sftp,ssh命令(ssh两种方式的密钥验证方

1.SSH远程管理 SSH(Secure Sheel)是一种安全通道协议,主要用于实现字符界面的远程登录.远程复制等功能.SSH协议对通信双方的数据传输进行了加密处理,其中包括用户的口令.与早期的TELNET(远程登录,tcp23端口).RSH(Remote Sheel,远程执行命令).RCP(Remote File Copy,远程文件复制)等应用想必,SSH协议提供了更好的安全性. 配置OpenSSH服务端(由openssh.openssh-server软件包提供.主配置文件/etc/ssh/

Linux服务器ssh远程管理

SSH远程管理 SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登陆,远程复制等功能.SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登陆时输入的用户口令,与早期的telnet(远程管理),rsh(Remote Shell ,远程执行命令),rcp(远程复制文件)等应用相比,SSH协议提供了更好的安全性. 配置OpenSSH服务端 在RHEL 5系统中,OpenSSH服务器由openssh,openssh-server等软件包提供(默认已安装),并已将s

SSH远程管理服务

作者:Georgekai 归档:学习笔记 2018/1/29 SSH远程管理服务 1.1 SSH服务介绍说明 Secure shell protocol--安全的shell协议 SSH:先对要传输的数据包进行加密处理,然后在进行数据传输,确保了数据的安全 telnet:用于远程连接控制,但不对数据传输进行加密 1.1.1 SSH服务主要提供的两个功能: 1. 远程连接 2. 远程文件传输:如sftp 1.1.2 SSH连接排错思路 1. ping 172.16.1.41 traceroute 1

Linux SSH远程管理故障如何排查?

Linux SSH远程管理故障如何排查? SSH远程管理故障排查方案: 1.检测两个机器是否畅通 两个机器之间是否畅通,查看物理链路是否有问题(网线网卡.IP是否正确) 第1步:物理链路是否畅通,比喻为"高速公路是否畅通" ping 排查客户端到服务端的线路问题,ping是常用的网络连通性检查工具 tracert -d 路由追踪命令,-d是不进行反向解析 C:\Users\Administrator>ping 10.0.0.8 正在Ping 10.0.0.8 具有32 字节的数据

Linux(11):期中架构(3)--- SSH远程管理服务 & ansible 批量管理服务

SSH远程管理服务 1. 远程管理服务知识介绍 # 1.1 SSH远程登录服务介绍说明 SSH是Secure Shell Protocol的简写,由 IETF 网络工作小组(Network Working Group)制定: 在进行数据传输之前,SSH先对联机数据包通过加密技术进行加密处理,加密后在进行数据传输.确保了传递的数据安全. SSH是专为远程登录会话和其他网络服务提供的安全性协议. 利用SSH协议可以有效的防止远程管理过程中的信息泄露问题,在当前的生产环境运维工作中, 绝大多数企业普遍

SSH远程管理服务实战

目录 SSH远程管理服务实战 1.SSH基本概述 2.SSH相关命令 3.Xshell连接不上虚拟机 4.scp命令 5.sftp命令 6.SSH验证方式 7.SSH场景实践 8.SH安全优化 9.交互expect[扩展] 10.免交互sshpass[扩展] SSH远程管理服务实战 1.SSH基本概述 SSH是一个安全协议,在进行数据传输时,会对数据包进行加密处理,加密后在进行数据传输.确保了数据传输安全.那SSH服务主要功能有哪些呢? 1.提供远程连接服务器的服务2.对传输的数据进行加密 那么

SSH远程管理

一.SSH介绍 SSH(Secure Shell) 是一种安全的通道协议,主要用来实现字符界面的远程登录.远程复制等功能. 软件:openssh.openssh-server等(默认已安装) 服务名称:sshd 端口:默认端口是22 服务端主程序:/usr/sbin/sshd 服务端配置文件:/etc/ssh/sshd_config 1.服务监听选项 [[email protected] ~]# vi /etc/ssh/sshd_config -- Port 22                

Linux环境下实现SSH远程管理

what 什么是SSH? SSH(Secure Shell)是一种安全通信协议,主要用来实现字符界面的远程登录.远程复制等功能.OpenSSH是实现SSH协议的开源项目 why 为什么要学习SSH,它与其他远程协议的区别在哪里? SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令.与早期的TELNET.RSH.PCR远程应用相比,SSH协议提供了更好的安全性. where SSH适合应用在哪里? 基于C/S架构,适合以部署OpenSSH服务器和客户端,实现远程连接.控

ssh远程管理服务配置

##sshd远程连接的优化 版主QQ:2559721591    资料网站:http://rshare.ys168.com 网络环境: ssh服务器(虚拟机):192.168.10.25 ssh客户机(物理机):192.168.10.1 ssh:是安全的外壳的缩写(Secure Shell).是专门为远程登录会话和其他网络服务提供安全性的协议. linux的ssh远程登录软件:openssh,默认端口是22. 显示远程连接过程:ssh  -v  [email protected] #软件安装 y