[SSH服务]——一个SSH无密码登陆实验
Posted Jelly_lyj
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[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而不需要密码。
SSH工作原理详解可参考我的博文:《ssh详解》
在服务器B:10.0.10.158上的操作
# 创建普通用户user_00 [root@lyj1 .ssh]# useradd user_00 [root@lyj1 .ssh]# passwd user_00 # 编辑SSH配置文件 [root@lyj1 .ssh]# vim /etc/ssh/sshd_config Port 22 PermitRootLogin no #禁止以root用户登录 PubkeyAuthentication yes #允许使用Key进行登录 # 重启SSH服务使配置更改生效 [root@lyj1 .ssh]# service sshd restart Stopping sshd: [ OK ] Starting sshd: [ OK ]
在服务器C:10.0.10.191上的操作
# 创建普通用户user_00 [root@lyj2 .ssh]# useradd user_00 [root@lyj2 .ssh]# passwd user_00 # 编辑SSH配置文件 [root@lyj2 .ssh]# vim /etc/ssh/sshd_config Port 22 PermitRootLogin no #禁止以root用户登录 PubkeyAuthentication yes #允许使用Key进行登录 # 重启SSH服务使配置更改生效 [root@lyj2 .ssh]# service sshd restart Stopping sshd: [ OK ] Starting sshd: [ OK ]
在服务器A:10.0.10.198上的操作
# 切换到user_00的家目录/home/user_00下 [root@localhost ~]# su - user_00 [user_00@localhost ~]$ pwd /home/user_00 # 生成公钥和私钥 [user_00@localhost ~]$ 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 user_00@localhost.localdomain The key\'s randomart image is: +--[ RSA 2048]----+ | .+++=o. | | o +o o= . | | * E o + | | + = + | | o S | | o | | o . | | o | | | +-----------------+ [user_00@localhost ~]$ pwd /home/user_00 [user_00@localhost ~]$ ls ./.ssh/ #家目录/home/user_00下有了.ssh目录,该目录下也产生了公钥和私钥文件 id_rsa id_rsa.pub [user_00@localhost ~]$ cd .ssh/ [user_00@localhost .ssh]$ cat id_rsa.pub > authorized_keys #将公钥复制一份并命名为authorized_keys [user_00@localhost .ssh]$ chmod 644 authorized_keys #将authorized_keys的权限改为644 #这个权限一定要改! [user_00@localhost .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用户还是需要密码:
[user_00@localhost ~]$ ssh 10.0.10.191 Last login: Thu Nov 26 02:10:22 2009 from 10.0.10.198 [user_00@localhost ~]$ ssh 10.0.10.191 Last login: Thu Nov 26 02:56:53 2009 [user_00@lyj2 ~]$ sudo mkdir /test [sudo] password for user_00:
为了实现user_00用户可以直接sudo到root用户,我们可以分别修改B和C上的/etc/sudoers文件,添加如下内容:
这样一来,user_00再sudo到root用户就不需要再输入密码了:
[user_00@localhost ~]$ ssh 10.0.10.191 Last login: Thu Nov 26 02:57:43 2009 from 10.0.10.198 [user_00@lyj2 ~]$ sudo mkdir /test2
以上是关于[SSH服务]——一个SSH无密码登陆实验的主要内容,如果未能解决你的问题,请参考以下文章
中小企业最基本的实用的ssh-key秘钥方案之ssh免密码登陆实战
中小企业最基本的实用的ssh-key秘钥方案之ssh免密码登陆实战