1.工作平台

  客户端:Win2kEn Sp3,Putty Beta 0.53

  服务器:RedHat72,OpenSSH_3.4p1

  2.Putty简介

  一个免费小巧的Win32平台下的ssh客户端。它的主程序只有348k,但是功能丝毫不逊色于商业的SecureCrt,更重要的是它是免费的。

  官方主页:http://www.chiark.greenend.org.uk/~sgtatham/putty/

  3.Publick Key认证简介

  Publick Key认证的主要魅力在于认证时承诺不必提供密码就能够同远程系统建立连接。Publick Key认证的基础在于一对密钥,public key和private key,public key对数据进行加密而且只能用于加密,private key只能对所匹配的public key加密过的数据进行解密。我们把public key放在远程系统合适的位置,然后从本地开始进行ssh连接。此时,远程的sshd会产生 一个随机数并用我们产生的public key进行加密后发给本地,本地会用private
key进行解密并把这个随机数发回给远程系统。最后,远程系统的sshd会得出结论 我们拥有匹配的private key允许我们登录。

  4.制造密钥

  用putty套装的puttygen来产生密钥。密钥的类型建议选择SSH2 RSA,因为用的最为广泛,大多数server支持。密钥的位数选择1024对大多数用户已经足够,除非你觉得还是不安全。然后点击"Generator",此时密钥生成当然也有几个选项出现。如果你有不止一个key,你可以在“Key comment”作注释用于区别其他的key。“Key passphrase“和“Confirm passphrase“用于对硬盘上的key进行加密,如过你自己一个人用机器觉得安全有保障的话可以让它们为空。然后保存两个key。不要关掉puttygen,它还有用呢。

  5.输送public key到远程系统

  在远程系统自己的目录下建立目录".ssh",然后进入目录建立一个新文件authorized_keys,然后把puttygen中"Public key for pasting into authorized_keys file"粘贴于authorized_keys这个文件中。然后执行以下命令:

  chmod 700 $HOME/.ssh

  chmod 600 $HOME/.ssh/authorized_keys

  chmod g-w $HOME $HOME/.ssh $HOME/.ssh/authorized_keys

  6.测试

  执行putty,建立一个session命名为ssh,设定ip,协议设为ssh,Connection设定ssh的auth中,private key的文件选择为puttygen产生的密钥。

  连接开始后,要求输入username,远程系统开始public key认证,如果密钥有passphrase则需要输入,否则直接就登录了。

  7.说明

  如果服务器端使用的是旧版本的Openssh或者www.ssh.com的产品,那么authorized_keys的设定有所不同,具体看手册了,我这里就不详述了。

  第一次写这种东西,错误难免多多,请大家指正。

  ---------------------------------------------------------------------------------------------

  dennis2作品(对上文的补充):

  1. 如果 private key 用 passphrase 加了密,可以运行 pageant.exe。运行后,在 system tray 里面就会出现一个戴着帽子的图标。双击这个图标,就会有一个对话框出现。但击 Add Key,然后选择加了密的 private key,单击 Open 后,就会出现另一个对话框问你要这个 private key 的 passphrase。输入 passphrase 并单击 OK 后,在第一个对话框里面就会出现这个 key 的信息,表示这个 key 已经被加上了。

  还没有完。打开 putty,load 要用该 key 的 session,然后在左面的菜单里,选择 connection,然后在右面的 Auto-login username 里面填入你的用户名,在 Connection->SSH->Auth->Private key file for authentication 里面,填入上面的 private key 文件(这步与 cAreLeSs 的第 6 步相同)。再回到session,将所作的变化保存下来。从此以后,这个 session 就不会提示输入
password 或 passphrase 了,包括用 psftp 时也是。

  2. 如果你还要从这个机器 (cAreLeSs 贴子中的 RedHat72)再 ssh 到其他的有 sshd 的机器(比如说你先 ssh 到防火墙,再 ssh 到防火墙后面的机器上),在上面提到的 Connection->SSH->Auth 里面将 Allow agent forwarding 打上钩(别忘了保存 session),这样再从 RedHat 上 ssh 到别的机器也不需要输入 password 或 passphrase 了。当然,public key 也需要拷贝到其他机器的 $HOME/.ssh/authorized_keys
里面。做了以上修改后,好像要重新启动 pageant 才行。

原文出自【比特网】,转载请保留原文链接:http://sec.chinabyte.com/224/8999224.shtml

Putty之public key ssh认证入门的更多相关文章

  1. Putty使用公钥认证时,报错:Disconnected: No supported authentication methods available(server sent:public key) 问题的解决

    Putty使用公钥认证时,按照常规方法设置,一直报错:Disconnected: No supported authentication methods available (server sent: ...

  2. 使用public key来做SSH authentication

    public key authentication(公钥认证)是对通过敲用户名.密码方式登录服务器的一种替代办法.这种方法更加安全更具有适应性,但是更难以配置. 传统的密码认证方式中,你通过证明你你知 ...

  3. windows,linux,mac生成ssh public key 和 private key

    https://help.launchpad.net/YourAccount/CreatingAnSSHKeyPair Creating the key How you create your SSH ...

  4. windows下git库的ssh连接,使用public key的方法

    在windows下进行项目开发,使用git,通过ssh方式与git库连接,而ssh方式用public key实现连接. 首先需要下载mygit,安装后使用git bash.git bash(有GUI界 ...

  5. Xshell配置ssh免密码登录-密钥公钥(Public key)与私钥(Private Key)登录【已成功实例】

    本文转自https://blog.csdn.net/qjc_501165091/article/details/51278696 ssh登录提供两种认证方式:口令(密码)认证方式和密钥认证方式.其中口 ...

  6. Xshell配置ssh免密码登录-密钥公钥(Public key)

    1 简介 ssh登录提供两种认证方式:口令(密码)认证方式和密钥认证方式.其中口令(密码)认证方式是我们最常用的一种,这里介绍密钥认证方式登录到linux/unix的方法. 使用密钥登录分为3步: 1 ...

  7. 设置 ssh 使用public key 免密码登录

    第一步,生成自己公钥, 私钥 1: ssh-keygen -t rsa 2:   3: root@yjlml:~# ssh-keygen -t rsa 4: Generating public/pri ...

  8. SSH公钥(public key)验证

    安全的设置服务器 登陆,之前用用户名和密码登陆服务器 这样不安全 ,用SSH公钥(public key)验证  这个办法能很好的解决 登陆服务器 和安全登陆服务器 的特点: 目标: Client 免输 ...

  9. jenkins 配置ssh remotes 报Failed to authenticate with public key

    问题:jenkins配置ssh远程连接时候报 ERROR: Failed to authenticate with public key com.jcraft.jsch.JSchException: ...

随机推荐

  1. c语言学习笔记 多级else if 和switch case有什么区别

    ; ) { dosth(); } ) { dosth2(); } else if(opion==) { dosth3(); } else dosth4(); 如果给option的一个值是2的话,那么程 ...

  2. js精度(摘)

    Math.formatFloat = function (f, digit) {    var m = Math.pow(10, digit);    return parseInt(f * m, 1 ...

  3. SQL之DCL

    DCL(Data Control Language)数据库控制语言  授权,角色控制等GRANT 授权REVOKE 取消授权 1)授权命令 grant,语法格式(SQL语句不区分大小写):Grant  ...

  4. HTML5 Canvas核心技术:图形、动画与游戏开发 PDF扫描版​

    HTML5 Canvas核心技术:图形.动画与游戏开发 内容简介: <HTML5 Canvas核心技术:图形.动画与游戏开发>中,畅销书作家David Geary(基瑞)先生以实用的范例程 ...

  5. 并发编程学习笔记之Java存储模型(十三)

    概述 Java存储模型(JMM),安全发布.规约,同步策略等等的安全性得益于JMM,在你理解了为什么这些机制会如此工作后,可以更容易有效地使用它们. 1. 什么是存储模型,要它何用. 如果缺少同步,就 ...

  6. asp.net mvc 中通过url字符串获取controller和action

    在项目中遇到需要通过url字符串获取controller和action的情况,百度了 一下找到了一个可以用的方法 ,在这里分享和记录一下 这个方法是在博客园的博问里看到的 原文地址是http://q. ...

  7. 浅谈 kubernetes service 那些事(上篇)

    一.问题 首先,我们思考这样一个问题: 访问k8s集群中的pod, 客户端需要知道pod地址,需要感知pod的状态.那如何获取各个pod的地址?若某一node上的pod故障,客户端如何感知? 二.k8 ...

  8. 华硕X550VC安装ubuntu后wifi无法连接问题

    在网上找了很多资料比如重新编译内核,想办法连上有线网络然后更新驱动,下载离线驱动安装包…… 等等方法 其中有些方法实际测试的时候失败了,文章是几年前的,可能缺少某些依赖.上个网都这么麻烦实在让人疲惫. ...

  9. 十三、Node.js-fs模块(上)

    Node.js内置的fs模块就是文件系统模块,负责读写文件以及对文件进行相关操作. 下面直接可参考下面的代码进行fs模块里面基本方法的学习: /** * Created by Administrato ...

  10. 如何安装memcached

    软件的下载,好像从官网上只能下载未经编译的源码,需要自己编译后才能安装使用,不熟悉的用户还是直接百度搜索下载比较好,这里也提供一个下载地址给大家参考. www.newasp.net/soft/6373 ...