[SSH服务]——一个SSH无密码登陆实验

实验拓扑图

实验描述

机房内有两台服务器:

(1)B服务器10.0.10.158,充当Web服务器,有普通用户user_00

(2)C服务器10.0.10.191,充当Mysql服务器,有普通用户user_00

有服务器A 10.0.10.198,供管理员平常使用来管理机房内的机器。为方便起见,所以要求做到:

(1)A服务器能SSH远程登录(以user_00的身份)到B和C,且实现无密码登陆;

(2)远程登录后,user_00可以直接sudo到root而不需要密码。



在服务器B:10.0.10.158上的操作

# 创建普通用户user_00
[[email protected] .ssh]# useradd user_00
[[email protected] .ssh]# passwd user_00
# 编辑SSH配置文件
[[email protected] .ssh]# vim /etc/ssh/sshd_config
Port 22
PermitRootLogin no              #禁止以root用户登录
PubkeyAuthentication yes        #允许使用Key进行登录
# 重启SSH服务使配置更改生效
[[email protected] .ssh]# service sshd restart
Stopping sshd:                                         [  OK  ]
Starting sshd:                                         [  OK  ]

在服务器C:10.0.10.191上的操作

# 创建普通用户user_00
[[email protected] .ssh]# useradd user_00
[[email protected] .ssh]# passwd user_00
# 编辑SSH配置文件
[[email protected] .ssh]# vim /etc/ssh/sshd_config
Port 22
PermitRootLogin no              #禁止以root用户登录
PubkeyAuthentication yes        #允许使用Key进行登录
# 重启SSH服务使配置更改生效
[[email protected] .ssh]# service sshd restart
Stopping sshd:                                         [  OK  ]
Starting sshd:                                         [  OK  ]

  

在服务器A:10.0.10.198上的操作

# 切换到user_00的家目录/home/user_00下
[[email protected] ~]# su - user_00
[[email protected] ~]$ pwd
/home/user_00
# 生成公钥和私钥
[[email protected] ~]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user_00/.ssh/id_rsa):
Created directory ‘/home/user_00/.ssh‘.                             #在用户的家目录/home/user_00下创建.ssh目录
Enter passphrase (empty for no passphrase):                         #要求输入加密短语(可以不输)
Enter same passphrase again:                                        #再次输入加密短语
Your identification has been saved in /home/user_00/.ssh/id_rsa.    #生成了私钥存放在用户家目录下的.ssh/id_rsa
Your public key has been saved in /home/user_00/.ssh/id_rsa.pub.    #生成了公钥存放在用户家目录下的.ssh/id_rsa.pub
The key fingerprint is:
7f:02:95:d2:12:c9:41:27:c8:50:66:aa:5c:68:69:73 [email protected]
The key‘s randomart image is:
+--[ RSA 2048]----+
|    .+++=o.      |
|   o +o o= .     |
|  * E   o +      |
| + =     +       |
|  o     S        |
|         o       |
|          o .    |
|           o     |
|                 |
+-----------------+
[[email protected] ~]$ pwd
/home/user_00
[[email protected] ~]$ ls ./.ssh/                           #家目录/home/user_00下有了.ssh目录,该目录下也产生了公钥和私钥文件
id_rsa   id_rsa.pub

[[email protected] ~]$ cd .ssh/
[[email protected] .ssh]$ cat id_rsa.pub > authorized_keys  #将公钥复制一份并命名为authorized_keys
[[email protected] .ssh]$ chmod 644 authorized_keys         #将authorized_keys的权限改为644 #这个权限一定要改!
[[email protected] .ssh]$ ll
总用量 12
-rw-r--r-- 1 user_00 user_00  411 6月  23 19:07 authorized_keys
-rw------- 1 user_00 user_00 1743 6月  23 19:02 id_rsa
-rw-r--r-- 1 user_00 user_00  411 6月  23 19:02 id_rsa.pub

为了实现A能无密码SSH登录到B和C,则必须使得B和C信任A,即让B和C拥有A的密钥。

方法是将A服务器上的/home/user_00/.ssh/authorized这个公钥,拷贝到B和C上各自的/home/user_00/.ssh目录下去。

要注意拷贝过去之后.ssh目录和authorized文件的属主属组和权限(否则很容易出错)。

这个时候A可以以user_00用户的身份无密码登陆到B和C了,但因为user_00是普通用户,所以sudo到root用户还是需要密码:

[[email protected] ~]$ ssh 10.0.10.191
Last login: Thu Nov 26 02:10:22 2009 from 10.0.10.198
[[email protected] ~]$ ssh 10.0.10.191
Last login: Thu Nov 26 02:56:53 2009
[[email protected] ~]$ sudo mkdir /test
[sudo] password for user_00:

为了实现user_00用户可以直接sudo到root用户,我们可以分别修改B和C上的/etc/sudoers文件,添加如下内容:

这样一来,user_00再sudo到root用户就不需要再输入密码了:

[[email protected] ~]$ ssh 10.0.10.191
Last login: Thu Nov 26 02:57:43 2009 from 10.0.10.198
[[email protected] ~]$ sudo mkdir /test2

  

  

  

时间: 2024-12-26 18:37:43

[SSH服务]——一个SSH无密码登陆实验的相关文章

从零开始构建集群前期准备之---SSH各服务器间无密码登陆

集群中服务器数量较多时,各节点的密码不相同之间不停切换,需要牢记各节点密码并输入密码,就成了一件很痛苦的事了.本文讲的SSH各服务器间无密码登陆,就是解决这个问题的. 本文,我们需要实现node1.node2.node3之间不需要输入密码直接通过: ssh node1或ssh 192.168.100.130直接登录 各节点列表: node1 192.168.100.130 node2 192.168.100.100 node3 192.168.100.101 实现过程: 首先实现node1无密码

linux redhat6.5 构建SSH服务及SSH构建密钥对验证

SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group) SSH是一种网络协议,用于计算机之间的加密登录.如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露.最早的时候,互联网通信都是明文通信,一旦被截获,内容就暴露无疑.1995年,芬兰学者Tatu Ylonen设计了SSH协议,将登录信息全部加密,成为互联网安全的一个基本解决方案,迅速在全世界获得推广,目前已

[DHCP服务]——一个验证DHCP原理实验(VMware)

大致实验拓扑图 DHCP Server端的配置 1. 安装DHCP # yum -y install dhcp 2. 拷贝配置文件 # cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf 3. 编辑配置文件 # vim /etc/dhcp/dhcpd.conf (1)默认租约时间 #指定默认的租约时间的长度,单位:秒 default-lease-time 3600: (2)最大租约时间 #指定默认的最大租约时间,

SSH无密码登陆问题解决

转载 http://my.oschina.net/hunzi/blog/10687 安装好Cygwin后,SSH需要设置为无密码登陆, 首先查看是ssh还是ssh2:ls -l `which ssh`lrwxrwxrwx 1 root root 4 2008-07-10 10:15 /usr/local/bin/ssh -> ssh2 如果“ls -l `which ssh`”得到的结果是:/usr/bin/ssh或/usr/local/bin/ssh,则可先认为为ssh2,不行再以ssh试一试

docker中安装ssh服务

系统:Debian Docker 目标:在docker(debian系统)中安装ssh服务,实现远程登陆和控制docker 步骤: 初始状态:通过docker pull debian得到的一个debian的docker 1,docker run -i -t debian /bin/bash 登录到docker的shell界面,方便之后的操作 2,apt-get update: docker默认root登录,apt-get install 几乎不能用,因为需要更新一下源(可能是为了更轻量) 3,a

[SSH服务]——SSH详解

在总结ssh原理前,我先做了一个ssh过程的实验 首先我搭建了这样一个实验环境: (1) SSH Server:10.0.10.198 (2) SSH Client:10.0.10.158 在Server端 10.0.10.198,我执行了如下操作: (1)清空了服务器端提供的公钥与自己的密钥: [[email protected] ssh]# rm /etc/ssh/ssh_host* rm:是否删除普通文件 "/etc/ssh/ssh_host_dsa_key"?y rm:是否删除

SSH服务及批量分发与管理实战

SSH服务 一.SSH服务介绍 SSH是Secure Shell Protocol的简写,由IETF网络工作小组制定:在进行数据传输之前,SSH先对联机数据包通过加密技术进行加密处理,加密后再进行数据传输,确保了传递的数据安全. SSH是专为远程登录会话和其他网络服务提供的安全性协议.利用SSH协议可以有效的防止远程管理过程中的信息泄露问题,在当前的生产环境当中,绝大多数企业普遍采用SSH协议服务来代替传统的不安全的远程联机服务软件.如telnet等. SSH服务功能: a.类似telnet远程

SSH服务:

SSH服务: ssh: secure shell, protocol, 22/tcp, 安全的远程登录 具体的软件实现: OpenSSH: ssh协议的开源实现,CentOS默认安装 dropbear:另一个开源实现 SSH协议版本 v1: 基于CRC-32做MAC,不安全:man-in-middle v2:双方主机协议选择安全的MAC方式 基于DH算法做密钥交换,基于RSA或DSA实现身份认证 两种方式的用户登录认证: 基于password 基于key -1:强制使用ssh协议版本1: -2:

乌班图中的ssh服务

SSH服务(TCP端口号22):安全的命令解释器                                     为客户机提供安全的Shell 环境,用于远程管理                                     SSH基于公钥加密(非对称加密)技术: 数据加密传输: 客户端和服务器的身份验证:                                    公钥 和 私钥是成对生成的,这两个密钥互不相同,两个密钥可以互相加密和解密: