Chinaunix首页 | 论坛 | 博客
  • 博客访问: 355845
  • 博文数量: 48
  • 博客积分: 743
  • 博客等级: 上士
  • 技术积分: 956
  • 用 户 组: 普通用户
  • 注册时间: 2011-11-22 13:51
文章分类

全部博文(48)

文章存档

2015年(3)

2014年(17)

2012年(23)

2011年(5)

分类: LINUX

2014-02-25 13:48:02

SSH登录linux相关

.简介

SSH -- Secure Shell

    SSH作为一种网络协议,用来实现两台机器间的安全交流,比如实现远程登录和文件传输。SSH协议使用了客户机/服务器模式,就是说一台主机作为SSH服务器,另一台主机作为SSH客户机。你要连接的机器需要开启SSH服务。另外,SSH协议提供了两种安全级别:
    级别1 仅使用用户名和密码来登录远程的SSH服务器,传输的数据是加密的。在这种情况下,仍有可能会有别的主机假冒所要登录的主机。
    级别2 使用公钥和密钥,避免了级别1所面临的安全问题。

  注:SSH仅是一种网络协议,用户需要使用实现了SSH协议的程序来进行远程登录,文件传输,或者其他任务。在Unix/Linux上,可以使用ssh命令(程序)来登录远程主机,使用scp命令在两台主机间安全地传递文件;在Windows上,可以使用PuTTY程序来登录远程主机。

.生成ssh密钥对

ssh-keygen 用于为 ssh(1)生成、管理和转换认证密钥,包括 RSA DSA 两种密钥

ssh-keygen -t rsa -C “comment” -f ~/.ssh/mykey

    会在~/.ssh/目录下生成mykey.pub(公钥)mykey(私钥)两个文件

      

参数:

        -t type指定要创建的密钥类型。可以使用:"rsa1"(SSH-1) "rsa"(SSH-2) "dsa"(SSH-2)

        -C comment提供一个注释

        -f filename指定密钥文件名(不指定时默认:rsa1identity identity.pubrsaid_rsa id_rsa.pubdsaid_dsa id_dsa.pub)

其他参数man ssh-keygen

.设置ssh无密码登录

    主机C登录主机S不需要输入密码的方法:

  • 主机Cssh-keygen生成密钥对
  • 将公钥文件(~/.ssh/id_rsa.pub)里的内容添加到主机S.ssh/authorized_keys文件(ssh-copy-id -i ~/.ssh/id_rsa.pub user@host_C)

  • 修改主机S.ssh/authorized_keys文件权限为600 (chmod 600 .ssh/authorized_keys)

  • 主机C登录主机S (ssh -p 22 )

        注:链接成功后,主机C.ssh/known_hosts会有链接记录(远程主机公钥)

.使用别名链接主机

    可以在~/.ssh目录下创建如下的配置文件config vi ~/.ssh/config

    Host 224

    User fussfuss1                       #远程主机上的用户名

    Port 22                                  #ssh端口

    Hostname 192.168.4.224     #要链接主机的地址

    IdentityFile ~/.ssh/id_rsa         #指定私钥文件(公钥已添加到远程主机的.ssh/authorized_keys )

    这样直接ssh 224 即可不需要密码直接链接到IP192.168.4.224远程主机


Q&A

Q: SSH登录过程?

A: 整个过程是这样的:(1)远程主机收到用户的登录请求,把自己的公钥发给用户。(2)用户使用这个公钥,将登录密码加密后,发送回来。(3)远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录。


Q:使用公钥和密钥,一台主机X想登陆远程主机R,那么远程主机R何如确定主机X确实为主机L呢?
A
远程主机R sshd 会生成一个随机数,并用主机L先前拷贝过去的公用密钥对这个随机数进行加密。然后, sshd 把加密了的随机数发回给正在主机X上运行的 ssh。接下来,主机Xssh 用密钥对这个随机数进行解密后,再把它发回给远程主机R。如果结果相匹配,那么实际上等于在说:“瞧,我确实有匹配的专用密钥;我能成功的对您的消息进行解密!”最后, 远程主机Rsshd 得出结论,既然主机X持有匹配的专用密钥,就应当认为主机X是主机L,允许登录。


阅读(1092) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~