ssh-key免密钥认证实战

ssh-key免密钥认证

环境:

server 服务器192.168.1.178/24

client-b服务器192.168.1.1.179/24

client-c服务器192.168.1.1.180/24

这三台机器都禁止root的远程登录,并且把ssh的默认访问端口22改成5201端口

这三台机器都创建了crazy普通用户,密码123456

需求:实现server端通过SSH通道可以免密码访问client-b主机和client-c主机

拓扑图:

实战操作:

在server服务器使用crazy普通用户创建一对密钥,默认生成并且存放在家目录下:

[[email protected] ~]$ ssh-keygen -t dsa    #生成一对dsa类型的密钥对

Generating public/private dsa key pair.

Enter file in which to save the key (/home/crazy/.ssh/id_dsa):       #直接回车默认存放路径,路径不存的自动创建

Created directory ‘/home/crazy/.ssh‘.     #自动在家目录下创建.ssh目录

Enter passphrase (empty for no passphrase):      #直接回车

Enter same passphrase again:      #直接回车

Your identification has been saved in /home/crazy/.ssh/id_dsa.

Your public key has been saved in /home/crazy/.ssh/id_dsa.pub.

The key fingerprint is:

d8:2f:27:3e:92:18:1d:2a:8b:92:59:37:71:2f:e2:f6 [email protected]

[[email protected] ~]$ ls -al /home/crazy/.ssh/

total 16

drwx------ 2 crazy crazy 4096 Oct 26 04:25 .

drwx------ 4 crazy crazy 4096 Oct 26 04:24 ..

-rw------- 1 crazy crazy  672 Oct 26 04:25 id_dsa    #创建的私钥(钥匙)

-rw-r--r-- 1 crazy crazy  602 Oct 26 04:25 id_dsa.pub    #创建的公钥(锁)

使用 ssh-copy-id -i /home/crazy/.ssh/id_dsa.pub ‘-p5201 [email protected]‘

ssh-copy-id -i /home/crazy/.ssh/id_dsa.pub ‘-p5201 [email protected]‘

ssh-copy-id -i 这个是ssh的内置一个命令脚本

把公钥推送到192.168.1.179/24和192.168.1.180/24主机crazy用户的家目录下.ssh目录下存放

[[email protected] ~]$ ssh-copy-id -i /home/crazy/.ssh/id_dsa.pub ‘-p5201 [email protected]‘

27

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

RSA key fingerprint is 1d:8e:6d:4e:63:41:8f:19:c0:dd:7e:1d:c4:dd:9c:8d.

Are you sure you want to continue connecting (yes/no)? yes     #第一次连接需要把RSA认证加入本地

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

[email protected]‘s password:     #输入对方crazy的用户密码

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

.ssh/authorized_keys    #推送的公钥,然后在对方家目录下创建.ssh目录,把公钥改名为authorized_keys

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

[[email protected] ~]$ ssh-copy-id -i /home/crazy/.ssh/id_dsa.pub ‘-p5201 [email protected]‘

27

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

RSA key fingerprint is 1d:8e:6d:4e:63:41:8f:19:c0:dd:7e:1d:c4:dd:9c:8d.

Are you sure you want to continue connecting (yes/no)? yes    #第一次连接需要把RSA认证加入本地

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

[email protected]‘s password:     #输入对方crazy的用户密码

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

.ssh/authorized_keys    #推送的公钥,然后在对方家目录下创建.ssh目录,把公钥改名为authorized_keys

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

查看client-b服务器192.168.1.1.179/24和client-c服务器192.168.1.1.180/24

[[email protected] ~]$ tree -a      #client-b服务器192.168.1.1.179/24

.

|-- .bash_history

|-- .bash_logout

|-- .bash_profile

|-- .bashrc

|-- .emacs

|-- .lesshst

|-- .mozilla

|   |-- extensions

|   `-- plugins

|-- .viminfo

`-- .zshrc

3 directories, 8 files

[[email protected] ~]$ tree -a

.

|-- .bash_history

|-- .bash_logout

|-- .bash_profile

|-- .bashrc

|-- .emacs

|-- .lesshst

|-- .mozilla

|   |-- extensions

|   `-- plugins

|-- .ssh    #新创建的目录

|   `-- authorized_keys    #公钥(锁)的名称

|-- .viminfo

`-- .zshrc

4 directories, 9 files

[[email protected] ~]$  tree  #client-c服务器192.168.1.1.180/24

.

|-- .bash_history

|-- .bash_logout

|-- .bash_profile

|-- .bashrc

|-- .emacs

|-- .mozilla

|   |-- extensions

|   `-- plugins

|-- .zshrc

`-- abcde

3 directories, 7 files

[[email protected] ~]$  tree -a

.

|-- .bash_history

|-- .bash_logout

|-- .bash_profile

|-- .bashrc

|-- .emacs

|-- .mozilla

|   |-- extensions

|   `-- plugins

|-- .ssh    #新创建的目录

|   `-- authorized_keys    #公钥(锁)的名称

|-- .zshrc

`-- abcde

4 directories, 8 files

公钥(锁)分发完成后在server服务器使用ssh查看远程查看内存,不再提示输入密码

[[email protected] ~]$ ssh -p5201 [email protected] free    #查看内存client-b服务器192.168.1.1.179/24

total       used       free     shared    buffers     cached

Mem:         60528      28212      32316          0       1172      13364

-/+ buffers/cache:      13676      46852

Swap:       265064        132     264932

[[email protected] ~]$ ssh -p5201 [email protected] free    #查看内存client-c服务器192.168.1.1.180/24

total       used       free     shared    buffers     cached

Mem:         60528      27076      33452          0       1128      13060

-/+ buffers/cache:      12888      47640

Swap:       265064        224     264840

在sever端查看密钥对的权限,看出ssh免密钥认证对私钥权限控制的比较严格,公钥没有那么严格

[[email protected] .ssh]$ ls -l

total 12

-rw------- 1 crazy crazy 672 Oct 26 04:25 id_dsa    #默认权限是600

-rw-r--r-- 1 crazy crazy 602 Oct 26 04:25 id_dsa.pub    #默认权限是644

-rw-r--r-- 1 crazy crazy 790 Oct 26 05:20 known_hosts

改变权限测试:

[[email protected] .ssh]$ chmod 300 id_dsa    #权限改成300

[[email protected] .ssh]$ ll

total 12

--wx------ 1 crazy crazy 672 Oct 26 04:25 id_dsa    #权限改成300,无法验证通过

-rw-r--r-- 1 crazy crazy 602 Oct 26 04:25 id_dsa.pub

-rw-r--r-- 1 crazy crazy 790 Oct 26 05:20 known_hosts

[[email protected] .ssh]$ ssh -p5201 [email protected] free

Enter passphrase for key ‘/home/crazy/.ssh/id_dsa‘:

[email protected]‘s password:     #提示输入密码

[[email protected] .ssh]$ chmod 710 id_dsa    #权限改成710

[[email protected] .ssh]$ ll

total 12

-rwx--x--- 1 crazy crazy 672 Oct 26 04:25 id_dsa    #权限改成710,无法验证通过

-rw-r--r-- 1 crazy crazy 602 Oct 26 04:25 id_dsa.pub

-rw-r--r-- 1 crazy crazy 790 Oct 26 05:20 known_hosts

[[email protected] .ssh]$ ssh -p5201 [email protected] free

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Permissions 0710 for ‘/home/crazy/.ssh/id_dsa‘ are too open.    ##权限改成710,提示权限too open

It is recommended that your private key files are NOT accessible by others.

This private key will be ignored.

bad permissions: ignore key: /home/crazy/.ssh/id_dsa

Enter passphrase for key ‘/home/crazy/.ssh/id_dsa‘:

[email protected]‘s password:     #提示输入密码

[[email protected] .ssh]$ chmod 400 id_dsa     #权限改成400,验证可以通过

[[email protected] .ssh]$ ssh -p5201 [email protected] free

total       used       free     shared    buffers     cached

Mem:         60528      27332      33196          0       1352      13076

-/+ buffers/cache:      12904      47624

Swap:       265064        224     264840

[[email protected] .ssh]$ chmod 700 id_dsa    #权限改成700,验证可以通过

[[email protected] .ssh]$ ssh -p5201 [email protected] free

total       used       free     shared    buffers     cached

Mem:         60528      27368      33160          0       1384      13076

-/+ buffers/cache:      12908      47620

Swap:       265064        224     264840

结论:

经过测试,私钥文件的权限改成400,500,600,700都能通过验证,其他的权限无法通过验证

时间: 2024-12-19 02:22:22

ssh-key免密钥认证实战的相关文章

ssh key 免密码登陆服务器,批量分发管理以及挂载远程目录的sshfs 功能

ssh key 免密码登陆服务器,批量分发管理以及挂载远程目录的sshfs 第一部分:使用ssh key 实现服务器间的免密码交互登陆 步骤1: 安装openssh-clients [[email protected] ~]# yum install openssh-clients -y 步骤2: 创建用户,所有机器同时操作,可直接使用root [[email protected] ~]# useradd test #如果使用root,这里跳过 [[email protected] ~]# ec

Linux之sshkey密钥认证实战

在实际的生产环境中,经常会用到sshkey密钥认证实行数据分发数据等操作,还可以批量操作内网服务器,实行免密认证进行推送分发数据. 1.环境查看 分发服务器 节点服务器 2.服务器添加系统账号 3.生成密钥对 [[email protected] ~]# su - fenfa [[email protected] ~]$ whoami fenfa [[email protected] ~]$ ssh-keygen -t dsa Generating public/private dsa key

ssh的免密码认证

ssh 无密码登录要使用公钥与私钥.linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例. 注意:如果root用户不能够登录就要关闭Selinux和防火墙. 有机器A(192.168.1.155),B(192.168.1.181).现想A通过ssh免密码登录到B. 首先以root账户登陆为例. 1.在A机下生成公钥/私钥对. [[email protected] ~]# ssh-keygen -t rsa -P '' -P表示密码,-P '' 就表示空密码,也可以不

20170117老男孩linux实战运维培训-SSH KEY免密码验证分发、管理、备份实战讲解01

这一节说的SSH ssh制造私钥和公钥 私钥是钥匙 公钥是锁 把公钥分发到各个要登录的linux服务器上 #ssh-keygen -t dsa 使用这个命令后将会在本机生成一对密钥 私钥 id_dsa 公钥 id_dsa.pub 把公钥放到要登录的服务器上 用命令 #ssh-copy-id -i id_dsa.pub [email protected] 放到公钥放到服务器上后就要开始验证了 命令 #ssh [email protected] 其实也可以用其它命令登录如 #scp -P22 -r

Linux ssh免密钥认证

hadoop和ansible都需要这个东西,其实很简单. 第一,在需要免秘钥登录的机器上生成公钥和私钥: ssh-keygen 第二,拷贝生成的公钥id_rsa.pub到远程机器上: ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]  #用此方式拷贝的好处是不用改名 这时再登录192.168.0.247的机器就无需密码了. [[email protected]_server ~]# ssh 192.168.0.247 Last logi

linux ssh key免密码分发

具体需求: 在同一用户hequan下 实现 A 从本地分发数据到B.过程中不需要密码提示 创建用户 #useradd hequan    # id hequan #echo 123456 | passwd  --stdin hequan # su - hequan RSA 既可以加密也,也可以数字签名 DSA     只能用于数字签名 开始创建密钥 [[email protected] ~]$ ssh-keygen -t dsa              默认RSA Generating pub

SSH KEY免密码验证

For mac os install ssh-copy-id: brew install ssh-copy-id For Linux install ssh-copy-id yum install openssh* STEP: 1: 生成SSH公钥 [[email protected] ~]# ssh-keygen -t dsa Generating public/private dsa key pair. Enter file in which to save the key (/root/.

SSH KEY免密码验证分发、管理、备份

分发: A: ssh-keygen (以rsa来生成秘钥 或者加上 -t dsa 以dsa生成) 一路回车 ssh-copy-id -i.ssh/id_rsa.pub **@B ssh-copy-id -i.ssh/id_rsa.pub **@C 完成后可以验证下 ssh **@B free-m ssh **@C free-m 备份: Z: ssh-copy-id -i .ssh/id_rsa.pub [email protected] (自己给自己发 也可以将id_rsa.pub mv改名为a

ssh key密钥认证实现批量分发、管理、部署

在实际生产环境中,如果需要批量管理和部署服务器,可以采用ssh+key秘钥认证,然后可以免密码进行数据分发,服务部署及管理. SSH服务(TCP端口号22):安全的命令解释器 为客户机提供安全的Shell 环境,用于远程管理 SSH基于公钥加密(非对称加密)技术: 数据加密传输: 客户端和服务器的身份验证: 公钥 和 私钥   是成对生成的,这两个密钥互不相同,两个密钥可以互相加密和解密:不能根据一个密钥而推算出另外一个密钥: 公钥对外公开,私钥只有私钥的持有人才知道. ssh批量分发 首先需要