`
phoenix007
  • 浏览: 430294 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

简单使用ssh密钥认证

阅读更多

A机器(ssh连接发起端,即客户端):

 

添加一个测试用户aaa

 

[root@A ~]# useradd aaa

 

suaaa

 

[root@A ~]# su - aaa

[aaa@A ~]$

 

ssh-keygen创建rsa密钥对

 

[aaa@A ~]$ ssh-keygen -t rsa

Generating public/private rsa key pair.

Enter file in which to save the key (/home/aaa/.ssh/id_rsa):       密钥文件的保存位置

Created directory '/home/aaa/.ssh'.              默认的密钥文件存放目录

Enter passphrase (empty for no passphrase):              密钥文件的保护密码

Enter same passphrase again:

Your identification has been saved in /home/aaa/.ssh/id_rsa.              生成的私钥

Your public key has been saved in /home/aaa/.ssh/id_rsa.pub.    生成的公钥

The key fingerprint is:

81:d7:de:e7:cb:7c:4e:16:d6:76:da:9d:30:25:76:09 aaa@A.test.com

 

[aaa@A ~]$ ll

total 32K

drwx------  3 aaa  aaa  4.0K Sep 17 16:09 .

drwxr-xr-x  4 root root 4.0K Sep 17 16:09 ..

-rw-r--r--  1 aaa  aaa   304 Sep 17 16:09 .bash_logout

-rw-r--r--  1 aaa  aaa   191 Sep 17 16:09 .bash_profile

-rw-r--r--  1 aaa  aaa   124 Sep 17 16:09 .bashrc

-rw-r--r--  1 aaa  aaa   383 Sep 17 16:09 .emacs

drwx------  2 aaa  aaa  4.0K Sep 17 16:09 .ssh              创建出的.ssh目录默认权限为700

 

注意生成的私钥文件的默认权限是rw-------,即600(确保他人不能查看)

 

[aaa@A ~]$ ll .ssh/

total 16K

drwx------  2 aaa aaa 4.0K Sep 17 16:09 .

drwx------  3 aaa aaa 4.0K Sep 17 16:09 ..

-rw-------  1 aaa aaa  951 Sep 17 16:09 id_rsa         私钥文件

-rw-r--r--  1 aaa aaa  231 Sep 17 16:09 id_rsa.pub   公钥文件


B机器(ssh的被连接端,即服务端):

 

添加bbb用户

 

[root@B ~]# useradd bbb

 

subbb

 

[root@B ~]# su - bbb

 

手工在家目录下建立.ssh目录(如果不使用ssh-keygen工具的话)

 

[bbb@B ~]$ mkdir .ssh

 

[bbb@B ~]$ ls -al

total 28

drwx------  3 bbb  bbb  4096 Sep 17 16:52 .

drwxr-xr-x  4 root root 4096 Sep 17 16:52 ..

-rw-r--r--  1 bbb  bbb   304 Sep 17 16:52 .bash_logout

-rw-r--r--  1 bbb  bbb   191 Sep 17 16:52 .bash_profile

-rw-r--r--  1 bbb  bbb   124 Sep 17 16:52 .bashrc

drwxrwxr-x  2 bbb  bbb  4096 Sep 17 16:52 .ssh

 

修改.ssh目录的权限为700(非常重要!)

 

[bbb@B ~]$ chmod 700 .ssh

 

[bbb@B ~]$ ls -al

total 28

drwx------  3 bbb  bbb  4096 Sep 17 16:52 .

drwxr-xr-x  4 root root 4096 Sep 17 16:52 ..

-rw-r--r--  1 bbb  bbb   304 Sep 17 16:52 .bash_logout

-rw-r--r--  1 bbb  bbb   191 Sep 17 16:52 .bash_profile

-rw-r--r--  1 bbb  bbb   124 Sep 17 16:52 .bashrc

drwx------  2 bbb  bbb  4096 Sep 17 16:52 .ssh     确认权限为700

 

.ssh目录里创建authorized_keys文件,并将A机器上aaa用户的公钥(id_rsa.pub)内容写入此文件(关键操作!)

 

[bbb@B ~]$ cd .ssh/

 

[bbb@B .ssh]$ vi authorized_keys

 

粘贴aaaid_rsa.pub内容进来

 

修改authorized_keys的权限为400(非常重要!)

 

[bbb@B .ssh]$ chmod 400 authorized_keys

 

[bbb@B .ssh]$ ls -l authorized_keys

-r--------  1 bbb bbb 231 Sep 17 16:53 authorized_keys    确认权限为400

 

 

 

配置结束。


测试:从A机器上,在aaa用户下,使用bbb帐号登录B机器

 

 

[aaa@A ~]$ ssh -l bbb xxx.xxx.xxx.xxx

Enter passphrase for key '/home/aaa/.ssh/id_rsa':       会提示输入私钥保护密码(在创建密钥对时输的密码,输入正确后进入系统)

[bbb@B ~]$

 

  

安全的关键点在于如何安全地将id_rsa.pub的内容传递到服务端

 

 

测试完毕,清理系统(删除测试用户帐号及其家目录)

 

 

A机器上,exitroot

 

[root@A ~]# userdel -r aaa

 

B机器上,exitroot

 

[root@B ~]# userdel -r bbb

分享到:
评论

相关推荐

    YubiKey-Guide, 使用YubiKey作为GPG和SSH的智能卡的指南.zip

    YubiKey-Guide, 使用YubiKey作为GPG和SSH的智能卡的指南 这是使用 YubiKey 作为智能卡存储GPG加密和签名密钥的实用指南。还可以为SSH创建认证密钥,并与 gpg代理一起使用。像YubiKey这样存储的密钥比存储在磁盘上的...

    Cornerstone_4.1破解版mac版SVN客户端

    Cornerstone for Mac 是一个强大的,面向用户的版本控制实用程序,构建在开源Subversion版本控制系统之上,使复杂的版本控制项目尽可能简单。此外,Cornerstone全面支持Subversion的所有丰富功能,同时具有极强的...

    ppp-pam:Perfect Paper密码可插入身份验证模块

    PAM模块允许(例如)SSH进行OTP身份验证,该实用程序管理用户密钥并打印密码卡片,如下所示: server [12] A B C D E F G 1: aj5V rLxi sUb7 W@Un miKM dz:i !z#= 2: Pme4 gKMx rR#4 :MuA %yjY uvG5 8tfx 3: ...

    django-altauth:Django 的替代身份验证方法

    RSA 公钥认证(适用于标准 .pem 格式或 ssh 公钥 RSA 密钥格式)。 使用用户设置的备用密码进行身份验证。 为什么是这个应用程序? 创建此应用程序是为了解决以下用户案例:我正在管理一个 Web 服务,该服务充当...

    集群好书《高性能Linux服务器构建实战》 试读章节下载

    更为重要的是,本书的内容不受硬件环境的限制,而且包含大量实用性极强的案例。对于广大Linux运维人员和系统管理人员来说,具有非常实用的指导意义。 全书共分五个篇幅,由14个章节组成,内容涉及Web应用、数据...

    JAVA上百实例源码以及开源项目源代码

    Java生成密钥的实例 1个目标文件 摘要:Java源码,算法相关,密钥 Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、...

    JAVA上百实例源码以及开源项目

     Java语言开发的简洁实用的日期选择控件,源码文件功能说明:  [DateChooser.java] Java 日期选择控件(主体类) [public]  [TablePanel.java] 日历表格面板  [ConfigLine.java] 控制条类  [RoundBox.java] ...

Global site tag (gtag.js) - Google Analytics