zoukankan      html  css  js  c++  java
  • ssh密钥登录

    方法一:

    使用下例中ssky-keygen和ssh-copy-id,仅需通过3个步骤的简单设置而无需输入密码就能登录远程Linux主机。 
    ssh-keygen 创建公钥和密钥。 
    ssh-copy-id 把本地主机的公钥复制到远程主机的authorized_keys文件上。
    ssh-copy-id 也会给远程主机的用户主目录(home)和~/.ssh, 和~/.ssh/authorized_keys设置合适的权限 。

    步骤1: 用 ssh-key-gen 在本地主机上创建公钥和密钥
    ligh@local-host$ ssh-keygen -t  rsa
    Enter file in which to save the key (/home/jsmith/.ssh/id_rsa):[Enter key] 
    Enter passphrase (empty for no passphrase): [Press enter key]
    Enter same passphrase again: [Pess enter key]
    Your identification has been saved in /home/jsmith/.ssh/id_rsa.
    Your public key has been saved in /home/jsmith/.ssh/id_rsa.pub. 
    The key fingerprint is: 33:b3:fe:af:95:95:18:11:31:d5:de:96:2f:f2:35:f9 
    ligh@local-host

    步骤2: 用 ssh-copy-id 把公钥复制到远程主机上
    ligh@local-host$ ssh-copy-id -i ~/.ssh/id_rsa.pub  root@192.168.0.3
    ligh@remote-host‘s password:
    Now try logging into the machine, with ―ssh ?remote-host‘‖, and check in: 
    .ssh/authorized_keys to make sure we haven‘t added extra keys that you weren‘t expecting.
    [注: ssh-copy-id 把密钥追加到远程主机的 .ssh/authorized_key 上.]

    步骤3: 直接登录远程主机
    ligh@local-host$ ssh remote-host 
    Last login: Sun Nov 16 17:22:33 2008 from 192.168.1.2 
    [注: SSH 不会询问密码.] 
    ligh@remote-host$ 
    [注: 你现在已经登录到了远程主机上]

    http://blog.163.com/lgh_2002/blog/static/44017526201011333227161/

    方法二

    一、概述

    1、就是为了让两个linux机器之间使用ssh不需要用户名和密码。采用了数字签名RSA或者DSA来完成这个操作

    2、模型分析

    假设 A (192.168.20.59)为客户机器,B(192.168.20.60)为目标机;

    要达到的目的:
    A机器ssh登录B机器无需输入密码;
    加密方式选 rsa|dsa均可以,默认dsa

     

    二、具体操作流程

     

    单向登陆的操作过程(能满足上边的目的):
    1、登录A机器 
    2、ssh-keygen -t [rsa|dsa],将会生成密钥文件和私钥文件 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub
    3、将 .pub 文件复制到B机器的 .ssh 目录, 并 cat id_rsa.pub >> ~/.ssh/authorized_keys
    4、大功告成,从A机器登录B机器的目标账户,不再需要密码了;(直接运行 #ssh 192.168.20.60 )

    http://blog.csdn.net/kongqz/article/details/6338690







    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    随着PHP越来越流行,Linux VPS/服务器的使用也越来越多,Linux的安全问题也需要日渐加强,如果你安装过DenyHosts并设置过邮件提醒,你每天可能会受到数封DenyHosts Report将前来破解SSH密码的IP加入/etc/hosts.deny。

    Linux SSH登录有两种:

    1、使用密码验证登录

    通常VPS或服务器开通后都是直接提供IP和root密码,使用这种方式就是通过密码方式登录。如果密码不够强壮,而且没有安装DenyHosts之类的防止SSH密码破解的软件,那么系统安全将存在很大的隐患。

    2、使用密钥验证登录

    基于密钥的安全验证必须为用户自己创建一对密钥,并把共有的密钥放在需要访问的服务器上。当需要连接到SSH服务器上时,客户端软件就会向服务器发出请求,请求使用客户端的密钥进行安全验证。服务器收到请求之后,先在该用户的根目录下寻找共有密钥,然后把它和发送过来的公有密钥进行比较。如果两个密钥一致,服务器就用公有的密钥加密“质询”,并把它发送给客户端软件(putty,xshell等)。客户端收到质询之后,就可以用本地的私人密钥解密再把它发送给服务器,这种方式是相当安全的。

    一、生成密钥

    因为puttygen生成的密钥有问题可能会出现:“Server refused our key”,最好使用XShell生成密钥或者在远程Linux VPS/服务器生成密钥。

    1、在Linux远程服务器生成密钥:

    登录远程Linux  VPS/服务器,执行:
    root@vpser:~# ssh-keygen -t rsa //先运行这个命令
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa):                   //直接回车
    Created directory '/root/.ssh'.
    Enter passphrase (empty for no passphrase):                                    //输入密钥密码
    Enter same passphrase again:                                                                 //重复密钥密码
    Your identification has been saved in /root/.ssh/id_rsa.         //提示公钥和私钥已经存放在/root/.ssh/目录下
    Your public key has been saved in /root/.ssh/id_rsa.pub.
    The key fingerprint is:
    15:23:a1:41:90:10:05:29:4c:d6:c0:11:61:13:23:dd root@vpser.net
    The key's randomart image is:
    +--[ RSA 2048]----+
    |=&@Bo+o o.o      |
    |=o=.E  o . o     |
    | .    .   .      |
    |         .       |
    |        S        |
    |                 |
    |                 |
    |                 |
    |                 |
    +-----------------+
    root@vpser:~#
    将/root/.ssh/下面的id_rsa和id_rsd.pub妥善保存。

    2、使用XShell生成密钥

    Xshell是一款Windows下面功能强大的SSH客户端,能够按分类保存N多会话、支持Tab、支持多密钥管理等等,管理比较多的VPS/服务器使用XShell算是比较方便的,推荐使用。

    下载XShell,安装,运行XShell,点击菜单:Tool ->User Key Generation Wizard,出现如下提示:

    点击Save as file将密钥保存为id_rsa.pub。

    二、将密钥添加到远程Linux服务器

    1、用winscp,将id_rsa.pub文件上传到/root/.ssh/下面(如果没有则创建此目录),并重命名为:authorized_keys(如果是在Linux服务器上生成的密钥直接执行:mv /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys),再执行:chmod 600 /root/.ssh/authorized_keys 修改权限。

    2、修改/etc/ssh/sshd_config 文件,将RSAAuthentication 和 PubkeyAuthentication 后面的值都改成yes ,保存。

    3、重启sshd服务,Debian/Ubuntu执行/etc/init.d/ssh restart ;CentOS执行:/etc/init.d/sshd restart

    三、客户端测试使用密钥登录

    1、使用putty登录

    putty使用的私钥文件和Linux服务器或XShell的私钥格式不同,如果使用putty的话,需要将Linux主机上生成的id_rsa文件下载的本地。运行putty压缩包里面的puttygen.exe,选择Conversions->Import key选择私钥文件id_rsa,输入密钥文件的密码,会出现如下界面:

    点击“Save Private Key”,将私钥保存为id_rsa.ppk

    运行putty,在Host Name填写:root@主机名或ip

    如果设置了密钥密码,出现:Passphrase for key "imported-openssh-key"时输入密钥密码。

    如果设置没问题就会登录成功,出现用户提示符。

    2、XShell登录

    运行XShell,选择菜单File->New,按如下提示填写:

    打开创建好的Session

    如果设置没问题就会登录成功,出现用户提示符。

    3、Linux客户端登录测试

    在Linux客户端执行:chmod 600 /root/id_rsa 再执行:ssh root@www.vpser.net -i /root/id_rsa /root/id_rsa为私钥文件,第一次链接可能会提示确认,输入yes即可,再按提示输入密钥密码,没有问题就会出现用户提示符。

    四、修改远程Linux服务器sshd服务配置

    1、修改/etc/ssh/sshd_config 文件

    将PasswordAuthentication yes 修改成 PasswordAuthentication no

    2、重启sshd服务

    Debian/Ubuntu执行/etc/init.d/ssh restart ;CentOS执行:/etc/init.d/sshd restart。

    ok,设置完成。

    再提醒一下一定要保存好Putty私钥文件id_rsa.ppk或Linux服务器下载下来的id_rsa私钥文件。

    原创文章,谢绝转载!

    >>转载请注明出处:VPS侦探 本文链接地址:http://www.vpser.net/security/linux-ssh-authorized-keys-login.html

     



     



  • 相关阅读:
    利用wikipedia 的API实现对其内容的查询
    Android 无标题 全屏设置
    anroid中ScrollView嵌套ListView
    ListView的不同item加载不同Layout,listviewlayout
    ListView缓存机制
    演化理解 Android 异步加载图片
    【自定义控件】自定义属性
    【自定义控件】组合控件
    【自定义控件】的基本步骤
    ContentResolver如何获取本地媒体文件
  • 原文地址:https://www.cnblogs.com/jins-note/p/9512562.html
Copyright © 2011-2022 走看看