`
samjavaeye
  • 浏览: 187552 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

linux ssh 密钥认证自动登录

 
阅读更多

简单讲就是先生成一套公钥--私钥,私钥自己拿着,公钥的内容添加到服务器上对应账号的.ssh/authorized_keys文件中。

 

 【服务端配置】

先配置Server,打开公钥认证。用root用户执行:

vim /etc/ssh/ssh_config

将以下两行配置打开注释:

RSAAuthentication yes

IdentityFile ~/.ssh/id_rsa

然后重启ssh服务:/etc/init.d/sshd restart

 

【客户端生成密钥】

假设要实现user0无密码登录remotehost,则先用user0登录客户端,然后执行ssh-keygen -t rsa

Generating public/private rsa key pair.

Enter file in which to save the key (/home/user0/.ssh/id_rsa):(缺省将公钥和私钥保存在当前登录用户的.ssh目录下,id_rsa是私钥,id_rsa.pub是公钥)

Created directory '/home/user0/.ssh'.

Enter passphrase (empty for no passphrase):(这里输入使用私钥时的密码,如果设置了密码则每次登录需要输入该密码,要实现无密码登录就不能设置此密码。但是如果不设置密码,私钥被非法拷贝以后就可以直接登录)

Enter same passphrase again:(重复输入一次密码)

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

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

The key fingerprint is:

f1:e8:ae:a7:b3:f6:64:3f:30:34:1f:c5:07:ce:0f:bc myid@localhost

The key's randomart image is:

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

|   .o..          |

|   .   .         |

|  .   .          |

|   . . .         |

|    o = S        |

|     = +    o    |

|      . .  o...  |

|         .o o=.  |

|         .E*==.  |

 

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

注意:如果passphrase为空,生成的私钥必须绝对禁止未授权的访问!

然后把私钥拷贝到客户端的~/.ssh目录下(可以使用其他账号),可以重命名。

 

【把公钥传到服务器上】

将客户端/home/user0/.ssh/id_rsa.pub拷贝到服务器的/home/user0/.ssh目录,并重命名为authorized_keys文件,注意设为其他人不可读写。

chmod 400 /home/user0/.ssh/id_rsa.pub

scp /home/user0/.ssh/id_rsa.pub user0@remotehost:/home/user0/.ssh/authorized_keys

如果服务器上authorized_keys文件已经存在,则添加到末尾:

$cat .ssh/id_rsa.pub >> ~/.ssh/authorized_keys

 

【使用私钥登录】

用ssh -i 选项指定私钥文件就可以使用密码登录了,此时要输入使用私钥的密码(不是服务端的账号密码)。

$ssh -i .ssh/id_rsa_50_72 user0@10.13.50.72  (id_rsa_50_72是已经重命名的私钥文件,10.13.50.72是服务器IP)

Enter passphrase for key '.ssh/id_rsa_50_72': (输入使用私钥时的密码)

Last login: Wed Apr  9 16:13:23 2014 from 10.25.204.50(登录成功)

每次敲命令,都要指定私钥,是一个很繁琐的事情,所以我们可以把私钥的路径加入ssh客户端的默认配置里

修改/etc/ssh/ssh_config

#其实默认id_rsa就已经加入私钥的路径了,这里只是示例而已

IdentityFile ~/.ssh/id_rsa

#如果有其他的私钥,还要再加入其他私钥的路径

 IdentityFile ~/.ssh/blue_rsa

分享到:
评论

相关推荐

    Linux机器之间建立互信

     是两台机器(web-1和web-2)经过预先设置好经过认证的key文件,双方互相访问时,进行自动认证,从而实现互信。  互信的原理了解了,我们可以把配置ssh互信的步骤进行有效的分割。  1.在要配置互信的机器(web-1...

    SecureCRT&SecureFX; V8.1

     SecureCRT 还可以通过公共密钥代理来支持转发,当使用同一个X.509证书连接到另一台机器时,可以自动进行再认证。对SSH代理功能性的激活器支持:如果激活器处 于运行状态,即使SecureCRT已关闭,也可以自动认证。多...

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

    由国内著名技术社区联合推荐的2012年IT技术力作:《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》,即将上架发行,此书从Web应用、数据备份与恢复、网络存储应用、运维监控与性能优化、集群高级应用等...

    SecureCRT&SecureFX 64位 7.2.3 注册机

    它主要用于Linux操作系统如redhat, ubuntu的客户端文件传输程序,您可以选择利用SFTP通过加密的SSH2实现安全传输,也可以利用FTP进行标准传输。该客户端具有Explorer风格的界面,易于使用,同时提供强大的自动化能力...

    ansible-role-security:Linux强化的重要角色

    该角色在基于RedHat / Debian / ArchlinuxLinux系统上执行一些基本的安全配置,例如:安装并配置以监视错误的SSH登录。基本的SSH强化功能,例如禁用root登录。禁用密码认证。启用基于密钥的身份验证。更改默认端口。...

    服务器安全技术详解.pptx

    信息泄露威胁消减措施(2/2):算法安全 KVM Over IP 支持管理通道加密 安全基础要求 密码应用规范 密钥管理规范 加密算法规范 选择业界公认的安全加密算法 我们禁用 我们选择 DES/3DES(现有的暴力破解设备 能在一天...

    SVN操作手册中文版网页格式

    3.6.6. 使用 svn+ssh 认证 3.6.7. svnserve 基于路径的授权 3.7. 基于 Apache 的服务器 3.7.1. 简介 3.7.2. 安装 Apache 3.7.3. 安装 Subversion 3.7.4. 配置 3.7.5. 多版本库 3.7.6. 路径为基础的授权 ...

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

     用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,...

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

     用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,...

    java开源包1

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包11

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包2

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包3

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包6

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包5

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包10

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包4

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包8

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包7

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

Global site tag (gtag.js) - Google Analytics